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)); }
function __toString() { $mapimplode = _Array::recursiveMerge()->map(function ($e) { return $e . ''; })->implode(''); $elem = TagNode::element($this->name, $this->attributes); return '' . $elem($mapimplode($this->content)); }
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>'); }
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) . ''); }
/** * @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]); }
/** * @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); }
public static function product() { return _Array::fold(function ($a, $b) { return $a * $b; }, 1); }
/** * @param $delimiter * @return CollectionNodeInterface */ public static function explode($delimiter) { return _Array::explode($delimiter); }
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); }
public function getSolutionByName(string $name) { $func = _Array::filter(self::filterName($name))->values(); $arr = $func($this->solutions); return count($arr) ? $arr[0] : null; }
/** * @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; }
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']])); }
//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));
/** * @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); }
/** * @param string $glue * @return AbstractNode */ public function implode(string $glue) { return $this->then(_Array::implode($glue)); }