Esempio n. 1
0
 public function testExampleExtractKey()
 {
     $people = SampleDataLoader::getPeople(true);
     $peopleSeq = Sequence::make($people)->keyBy(fn\fnPluck('_id'));
     $keys1 = exampleExtractKeys1($peopleSeq);
     $keys2 = exampleExtractKeys2($peopleSeq);
     $keys3 = exampleExtractKeys3($peopleSeq);
     $this->assertEquals($keys1, $keys2);
     $this->assertEquals($keys2, $keys3);
 }
Esempio n. 2
0
 public function testCompareMulti()
 {
     $values = TestData::$fruit;
     usort($values, fn\fnCompareMulti(array(fn\fnCompareField('name'))));
     $this->assertNotEquals(TestData::$fruit, $values);
     $this->assertEquals(Sequence::make(TestData::$fruit)->pluck('name')->sort()->toValues(), array_map(fn\fnPluck('name'), $values));
     $values = array(array('name' => 'Terry', 'age' => 22), array('name' => 'Bob', 'age' => 30), array('name' => 'Ann', 'age' => 30), array('name' => 'Sam', 'age' => 19), array('name' => 'Rob', 'age' => 30), array('name' => 'Robert', 'age' => 55));
     $expected = array(array('name' => 'Robert', 'age' => 55), array('name' => 'Ann', 'age' => 30), array('name' => 'Bob', 'age' => 30), array('name' => 'Rob', 'age' => 30), array('name' => 'Terry', 'age' => 22), array('name' => 'Sam', 'age' => 19));
     usort($values, fn\fnCompareMulti(array(fn\fnCompareFieldRev('age'), fn\fnCompareField('name'))));
     $this->assertEquals($expected, $values);
 }
Esempio n. 3
0
/**
 * @param array[] $employees
 * @return array
 */
function exampleKeyByIdSortByEmployeeLastName2($employees)
{
    $employeesSortedById = Sequence::make($employees)->keyBy(fn\fnPluck('employeeId'))->asort(fn\fnCompareField('lastName'))->to_a();
    return $employeesSortedById;
}
Esempio n. 4
0
 /**
  * Generate a pluck function that returns the value of a field, or null if the field does not exist.
  *
  * @param string $key - the name / key, of the field to get the value from.
  * @param mixed $default - the default value to assign if the field does not exist.
  * @return callable
  */
 public static function fnPluck($key, $default = null)
 {
     return fn\fnPluck($key, $default);
 }
Esempio n. 5
0
/**
 * Generates a function that pulls a value from a field in the document and passes it to $fnMap.
 * 
 * @param string $fieldName
 * @param Closure $fnMap($fieldValue)
 * @return Closure
 */
function fnMapFromField($fieldName, $fnMap)
{
    return fn\fnPipe(fn\fnPluck($fieldName), $fnMap);
}