Вход Регистрация
Файл: gapps/vendor/hamcrest/hamcrest-php/hamcrest/Hamcrest/Number/OrderingComparison.php
Строк: 86
<?php
namespace HamcrestNumber;

/*
 Copyright (c) 2009 hamcrest.org
 */

use HamcrestDescription;
use 
HamcrestTypeSafeMatcher;

class 
OrderingComparison extends TypeSafeMatcher
{

    private 
$_value;
    private 
$_minCompare;
    private 
$_maxCompare;

    public function 
__construct($value$minCompare$maxCompare)
    {
        
parent::__construct(self::TYPE_NUMERIC);

        
$this->_value $value;
        
$this->_minCompare $minCompare;
        
$this->_maxCompare $maxCompare;
    }

    protected function 
matchesSafely($other)
    {
        
$compare $this->_compare($this->_value$other);

        return (
$this->_minCompare <= $compare) && ($compare <= $this->_maxCompare);
    }

    protected function 
describeMismatchSafely($itemDescription $mismatchDescription)
    {
        
$mismatchDescription
            
->appendValue($item)->appendText(' was ')
            ->
appendText($this->_comparison($this->_compare($this->_value$item)))
            ->
appendText(' ')->appendValue($this->_value)
            ;
    }

    public function 
describeTo(Description $description)
    {
        
$description->appendText('a value ')
            ->
appendText($this->_comparison($this->_minCompare))
            ;
        if (
$this->_minCompare != $this->_maxCompare) {
            
$description->appendText(' or ')
                ->
appendText($this->_comparison($this->_maxCompare))
                ;
        }
        
$description->appendText(' ')->appendValue($this->_value);
    }

    
/**
     * The value is not > $value, nor < $value.
     *
     * @factory
     */
    
public static function comparesEqualTo($value)
    {
        return new 
self($value00);
    }

    
/**
     * The value is > $value.
     *
     * @factory
     */
    
public static function greaterThan($value)
    {
        return new 
self($value, -1, -1);
    }

    
/**
     * The value is >= $value.
     *
     * @factory atLeast
     */
    
public static function greaterThanOrEqualTo($value)
    {
        return new 
self($value, -10);
    }

    
/**
     * The value is < $value.
     *
     * @factory
     */
    
public static function lessThan($value)
    {
        return new 
self($value11);
    }

    
/**
     * The value is <= $value.
     *
     * @factory atMost
     */
    
public static function lessThanOrEqualTo($value)
    {
        return new 
self($value01);
    }

    
// -- Private Methods

    
private function _compare($left$right)
    {
        
$a $left;
        
$b $right;

        if (
$a $b) {
            return -
1;
        } elseif (
$a == $b) {
            return 
0;
        } else {
            return 
1;
        }
    }

    private function 
_comparison($compare)
    {
        if (
$compare 0) {
            return 
'less than';
        } elseif (
$compare == 0) {
            return 
'equal to';
        } else {
            return 
'greater than';
        }
    }
}
Онлайн: 3
Реклама