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