My first commit of codes
This commit is contained in:
82
vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php
vendored
Normal file
82
vendor/phpspec/prophecy/src/Prophecy/Argument/Token/ArrayEveryEntryToken.php
vendored
Normal file
@@ -0,0 +1,82 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Prophecy.
|
||||
* (c) Konstantin Kudryashov <ever.zet@gmail.com>
|
||||
* Marcello Duarte <marcello.duarte@gmail.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Prophecy\Argument\Token;
|
||||
|
||||
/**
|
||||
* Array every entry token.
|
||||
*
|
||||
* @author Adrien Brault <adrien.brault@gmail.com>
|
||||
*/
|
||||
class ArrayEveryEntryToken implements TokenInterface
|
||||
{
|
||||
/**
|
||||
* @var TokenInterface
|
||||
*/
|
||||
private $value;
|
||||
|
||||
/**
|
||||
* @param mixed $value exact value or token
|
||||
*/
|
||||
public function __construct($value)
|
||||
{
|
||||
if (!$value instanceof TokenInterface) {
|
||||
$value = new ExactValueToken($value);
|
||||
}
|
||||
|
||||
$this->value = $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function scoreArgument($argument)
|
||||
{
|
||||
if (!$argument instanceof \Traversable && !is_array($argument)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$scores = array();
|
||||
foreach ($argument as $key => $argumentEntry) {
|
||||
$scores[] = $this->value->scoreArgument($argumentEntry);
|
||||
}
|
||||
|
||||
if (empty($scores) || in_array(false, $scores, true)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return array_sum($scores) / count($scores);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function isLast()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function __toString()
|
||||
{
|
||||
return sprintf('[%s, ..., %s]', $this->value, $this->value);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return TokenInterface
|
||||
*/
|
||||
public function getValue()
|
||||
{
|
||||
return $this->value;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user