示例#1
0
 public function testImplode()
 {
     $implode = \Hurl\Node\Statics\_Array::implode('.');
     $data = ['a', 'b', 'c'];
     $this->assertInstanceOf(ArrayImplode::class, $implode);
     $this->assertEquals('a.b.c', $implode($data));
 }
示例#2
0
文件: Tag.php 项目: sysvyz/hurl
 function __toString()
 {
     $mapimplode = _Array::recursiveMerge()->map(function ($e) {
         return $e . '';
     })->implode('');
     $elem = TagNode::element($this->name, $this->attributes);
     return '' . $elem($mapimplode($this->content));
 }
示例#3
0
 public function testTagElement()
 {
     $data = ["aaa", "bbbb"];
     $li = TagNode::element('li', ['class' => 'le']);
     $ul = TagNode::element('ul', ['class' => 'fl']);
     $call = _Array::map($li)->implode('')->then($ul);
     $this->assertEquals($call($data), '<ul class="fl"><li class="le">aaa</li><li class="le">bbbb</li></ul>');
 }
示例#4
0
文件: XNodeTest.php 项目: sysvyz/hurl
 public function testXNode()
 {
     $data = ['abc', 'qwert', 'xyz'];
     $fn = _Node::init(function ($data) {
         $map = _Array::map(function ($value) {
             return Tag::init('li')->inner($value);
         });
         return Tag::init('ul')->inner($map($data));
     });
     $this->assertEquals('<ul><li>abc</li><li>qwert</li><li>xyz</li></ul>', $fn($data) . '');
 }
示例#5
0
    /**
     * @depends testExplode
     * @param $data
     */
    public function testDebug($data)
    {
        $debug = _Array::values()->debug();
        $expected = 'Array
(
    [0] => 4
    [1] => 78
    [2] => 2
    [3] => 7
    [4] => 4
    [5] => 34
    [6] => 43
    [7] => 34
)
';
        ob_start();
        $array = $debug($data);
        $result = ob_get_clean();
        $this->assertEquals($expected, $result);
        $this->assertEquals($array, [4, 78, 2, 7, 4, 34, 43, 34]);
    }
示例#6
0
 /**
  * @expectedException        InvalidArgumentException
  * @expectedExceptionMessage invalid property
  */
 public function testComparatorFail5()
 {
     $cmp = new ObjectComparator(['score', 'id']);
     $data = [GenericObject::init(['score' => ['asa'], 'id' => 5]), GenericObject::init(['score' => ['assa'], 'id' => 3])];
     $sort = _Array::sort($cmp);
     $sort($data);
 }
示例#7
0
文件: MathNode.php 项目: sysvyz/hurl
 public static function product()
 {
     return _Array::fold(function ($a, $b) {
         return $a * $b;
     }, 1);
 }
示例#8
0
文件: _String.php 项目: sysvyz/hurl
 /**
  * @param $delimiter
  * @return CollectionNodeInterface
  */
 public static function explode($delimiter)
 {
     return _Array::explode($delimiter);
 }
示例#9
0
 public function testBooleanInv()
 {
     $cmpNode = _Comparator::boolean()->invert();
     $data = [true, false, true, false, true, false, true];
     $node = _Array::values()->sort($cmpNode);
     $this->assertEquals([true, true, true, true, false, false, false], $node($data));
     $this->assertInstanceOf(AbstractComparator::class, $cmpNode);
 }
示例#10
0
 public function getSolutionByName(string $name)
 {
     $func = _Array::filter(self::filterName($name))->values();
     $arr = $func($this->solutions);
     return count($arr) ? $arr[0] : null;
 }
示例#11
0
 /**
  * @depends testAndOr
  * @param $filter
  * @return \Hurl\Node\Abstracts\AbstractNode
  */
 public function testArrayFilter($filter)
 {
     $arrayfilter = _Array::filter($filter)->values();
     $data = [[04], [], 2, "2", "", 1, "1", "14353", "1.4", "2.4", "sdasd", ""];
     $this->assertEquals($arrayfilter($data), [[], 2, "1", "14353", "1.4"]);
     return $filter;
 }
示例#12
0
 public function testStableSort2()
 {
     $stableSort = _Array::stableSort(_Comparator::alphaNumeric()->map(function ($elem) {
         return $elem['b'];
     }), function ($a, $b) {
         return $a['a'] - $b['a'];
     });
     $this->assertInstanceOf(ArrayStableSort::class, $stableSort);
     $data = ['p' => ['a' => 34, 'b' => 'p1'], 's' => ['a' => 32, 'b' => 's1'], 'l' => ['a' => 32, 'b' => 'l1'], 'm' => ['a' => 31, 'b' => 'm1'], 'n' => ['a' => 23, 'b' => 'm1']];
     $this->assertEquals(json_encode($stableSort($data)), json_encode(['l' => ['a' => 32, 'b' => 'l1'], 'n' => ['a' => 23, 'b' => 'm1'], 'm' => ['a' => 31, 'b' => 'm1'], 'p' => ['a' => 34, 'b' => 'p1'], 's' => ['a' => 32, 'b' => 's1']]));
 }
示例#13
0
文件: examples.php 项目: sysvyz/hurl
//int(10)
$explode = _String::explode('.');
var_dump($explode('a.b'));
$chain = $explode->implode('-');
var_dump($chain('a.b'));
$map = $explode->map($fromHex)->implode('.');
var_dump($map('a.b'));
$sort = _Array::sort(function ($a, $b) {
    return $a - $b;
});
var_dump($sort([2, 5, 3, 4, 1]));
//array(5) {
//  [0]=>
//  int(1)
//  [1]=>
//  int(2)
//  [2]=>
//  int(3)
//  [3]=>
//  int(4)
//  [4]=>
//  int(5)
//}
$string = 'a,3,e,22,a2,3e0,cf';
$explodeHexString = _Array::explode(',')->map(_String::trim()->then($fromHex))->sort(_Comparator::numeric());
print_r($explodeHexString($string));
$string = 'a,3,e,22,a2,3e0,cf';
$explodeHexString = _Array::explode(',')->sort(_Comparator::boolean()->map(_String::trim()->then($fromHex)->then(function ($e) {
    return $e % 5;
})), _Comparator::numeric()->map(_String::trim()->then($fromHex)));
print_r($explodeHexString($string));
示例#14
0
 /**
  * @expectedException        InvalidArgumentException
  * @expectedExceptionMessage invalid property
  */
 public function testComparatorFail5()
 {
     $cmp = new ArrayComparator(['score', 'id']);
     $data = [['score' => ['asa'], 'id' => 5], ['score' => ['assa'], 'id' => 3]];
     $sort = _Array::sort($cmp);
     $sort($data);
 }
示例#15
0
 /**
  * @param string $glue
  * @return AbstractNode
  */
 public function implode(string $glue)
 {
     return $this->then(_Array::implode($glue));
 }