20250208
+ [ObjectArray]: Добавлена функция Skip для пропуска $offset элементов массива. + [ObjectArray]: Добавлена функция Take для получения $count элементов массива. + [ObjectArray]: Добавлена функция SkipAndTake для получения $count элементов массива, начиная с индекса $startFrom.
This commit is contained in:
@@ -352,4 +352,82 @@ class ObjectArrayTest extends TestCase
|
||||
$this->assertEquals('b', $sr->a);
|
||||
$this->assertTrue($sr->c);
|
||||
}
|
||||
|
||||
public function testSkip ()
|
||||
{
|
||||
$this->PrepareForTest();
|
||||
|
||||
$array = [
|
||||
new A("a", 3, true),
|
||||
new A("c", 2, false),
|
||||
new A("b", 1, true),
|
||||
new A("d", 5, true),
|
||||
new A("e", 4, true),
|
||||
new A("f", 6, false)
|
||||
];
|
||||
|
||||
$a_Array = new ObjectArray($array);
|
||||
|
||||
// Для начала отсортируем по b
|
||||
$a_Array->Sort("b");
|
||||
|
||||
$b_Array = $a_Array->Skip(2);
|
||||
|
||||
$this->assertNotNull($b_Array);
|
||||
$this->assertEquals(4, $b_Array->Count());
|
||||
$this->assertEquals(3, $b_Array->First()->b);
|
||||
$this->assertEquals(6, $b_Array->Last()->b);
|
||||
}
|
||||
|
||||
public function testTake ()
|
||||
{
|
||||
$this->PrepareForTest();
|
||||
|
||||
$array = [
|
||||
new A("a", 3, true),
|
||||
new A("c", 2, false),
|
||||
new A("b", 1, true),
|
||||
new A("d", 5, true),
|
||||
new A("e", 4, true),
|
||||
new A("f", 6, false)
|
||||
];
|
||||
|
||||
$a_Array = new ObjectArray($array);
|
||||
|
||||
// Для начала отсортируем по b
|
||||
$a_Array->Sort("b");
|
||||
|
||||
$b_Array = $a_Array->Take(3);
|
||||
|
||||
$this->assertNotNull($b_Array);
|
||||
$this->assertEquals(3, $b_Array->Count());
|
||||
$this->assertEquals(1, $b_Array->First()->b);
|
||||
$this->assertEquals(3, $b_Array->Last()->b);
|
||||
}
|
||||
|
||||
public function testSkipAndTake ()
|
||||
{
|
||||
$this->PrepareForTest();
|
||||
|
||||
$array = [
|
||||
new A("a", 3, true),
|
||||
new A("c", 2, false),
|
||||
new A("b", 1, true),
|
||||
new A("d", 5, true),
|
||||
new A("e", 4, true),
|
||||
new A("f", 6, false)
|
||||
];
|
||||
|
||||
$a_Array = new ObjectArray($array);
|
||||
|
||||
// Для начала отсортируем по b
|
||||
$a_Array->Sort("b");
|
||||
|
||||
$b_Array = $a_Array->SkipAndTake(2, 3);
|
||||
|
||||
$this->assertNotNull($b_Array);
|
||||
$this->assertEquals(3, $b_Array->Count());
|
||||
$this->assertEquals(3, $b_Array->First()->b);
|
||||
$this->assertEquals(5, $b_Array->Last()->b);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user