20250204
This commit is contained in:
@@ -122,46 +122,194 @@ class ObjectArrayTest extends TestCase
|
||||
|
||||
public function testDelete ()
|
||||
{
|
||||
$this->PrepareForTest();
|
||||
|
||||
$array = [
|
||||
new A("a", 3, true),
|
||||
new A("c", 2, false),
|
||||
new A("b", 1, true),
|
||||
];
|
||||
|
||||
$a_Array = new ObjectArray($array);
|
||||
|
||||
$a_Array->Delete(fn (A $a): bool => $a->b == 3);
|
||||
|
||||
$cnt = $a_Array->Count();
|
||||
$this->assertEquals(2, $cnt);
|
||||
}
|
||||
|
||||
public function testClear ()
|
||||
{
|
||||
$this->PrepareForTest();
|
||||
|
||||
$array = [
|
||||
new A("a", 3, true),
|
||||
new A("c", 2, false),
|
||||
new A("b", 1, true),
|
||||
];
|
||||
|
||||
$a_Array = new ObjectArray($array);
|
||||
|
||||
$a_Array->Clear();
|
||||
|
||||
$cnt = $a_Array->Count();
|
||||
$this->assertEquals(0, $cnt);
|
||||
}
|
||||
|
||||
public function testMerge ()
|
||||
{
|
||||
$this->PrepareForTest();
|
||||
|
||||
$array = [
|
||||
new A("a", 3, true),
|
||||
new A("c", 2, false),
|
||||
new A("b", 1, true),
|
||||
];
|
||||
|
||||
$array2 = [
|
||||
new A("d", 4, true),
|
||||
new A("e", 5, false),
|
||||
new A("f", 6, true),
|
||||
];
|
||||
|
||||
$a_Array = new ObjectArray($array);
|
||||
|
||||
$a_Array->Merge($array2);
|
||||
|
||||
$cnt = $a_Array->Count();
|
||||
$this->assertEquals(6, $cnt);
|
||||
|
||||
$sr = $a_Array->Search('a', 'f');
|
||||
|
||||
$this->assertEquals(6, $sr->b);
|
||||
}
|
||||
|
||||
public function testMaxBy ()
|
||||
{
|
||||
$this->PrepareForTest();
|
||||
|
||||
$array = [
|
||||
new A("a", 3, true),
|
||||
new A("c", 2, false),
|
||||
new A("b", 1, true),
|
||||
];
|
||||
|
||||
$a_Array = new ObjectArray($array);
|
||||
|
||||
$sr = $a_Array->MaxBy(fn (A $a) => $a->b);
|
||||
|
||||
$this->assertEquals("a", $sr->a);
|
||||
}
|
||||
|
||||
public function testGetColumn ()
|
||||
{
|
||||
$this->PrepareForTest();
|
||||
|
||||
$array = [
|
||||
new A("a", 3, true),
|
||||
new A("c", 2, false),
|
||||
new A("b", 1, true),
|
||||
];
|
||||
|
||||
$a_Array = new ObjectArray($array);
|
||||
|
||||
$sr = $a_Array->GetColumn('a', fn (A $a): bool => $a->b < 3);
|
||||
|
||||
$this->assertIsArray($sr);
|
||||
$this->assertSame(['c', 'b'], $sr);
|
||||
}
|
||||
|
||||
public function testToArray ()
|
||||
{
|
||||
$this->PrepareForTest();
|
||||
|
||||
$array = [
|
||||
new A("a", 3, true),
|
||||
new A("c", 2, false),
|
||||
new A("b", 1, true),
|
||||
];
|
||||
|
||||
$a_Array = new ObjectArray($array);
|
||||
|
||||
$sr = $a_Array->ToArray();
|
||||
|
||||
$this->assertIsArray($sr);
|
||||
$this->assertSame($array, $sr);
|
||||
|
||||
}
|
||||
|
||||
public function testMinBy ()
|
||||
{
|
||||
$this->PrepareForTest();
|
||||
|
||||
$array = [
|
||||
new A("a", 3, true),
|
||||
new A("c", 2, false),
|
||||
new A("b", 1, true),
|
||||
];
|
||||
|
||||
$a_Array = new ObjectArray($array);
|
||||
|
||||
$sr = $a_Array->MinBy(fn (A $a) => $a->b);
|
||||
|
||||
$this->assertEquals("b", $sr->a);
|
||||
}
|
||||
|
||||
public function testIsExist ()
|
||||
{
|
||||
$this->PrepareForTest();
|
||||
|
||||
}
|
||||
$array = [
|
||||
new A("a", 3, true),
|
||||
new A("c", 2, false),
|
||||
new A("b", 1, true),
|
||||
];
|
||||
|
||||
public function testSortCallback ()
|
||||
{
|
||||
$a_Array = new ObjectArray($array);
|
||||
|
||||
$srTrue = $a_Array->IsExist(fn (A $a) => $a->b == 1);
|
||||
$srFalse = $a_Array->IsExist(fn (A $a) => $a->b == 5);
|
||||
|
||||
$this->assertTrue($srTrue);
|
||||
$this->assertFalse($srFalse);
|
||||
}
|
||||
|
||||
public function testUpdate ()
|
||||
{
|
||||
$this->PrepareForTest();
|
||||
|
||||
$array = [
|
||||
new A("a", 3, true),
|
||||
new A("c", 2, false),
|
||||
new A("b", 1, true),
|
||||
];
|
||||
|
||||
$a_Array = new ObjectArray($array);
|
||||
|
||||
$a_Array->Update([new A("d", 3, true)], fn (A $a) => $a->a == "a");
|
||||
|
||||
$sr = $a_Array->Search("a", "d");
|
||||
|
||||
$this->assertEquals("3", $sr->b);
|
||||
$this->assertTrue($sr->c);
|
||||
}
|
||||
|
||||
public function testGetRow ()
|
||||
{
|
||||
$this->PrepareForTest();
|
||||
|
||||
$array = [
|
||||
new A("a", 3, true),
|
||||
new A("c", 2, false),
|
||||
new A("b", 1, true),
|
||||
];
|
||||
|
||||
$a_Array = new ObjectArray($array);
|
||||
|
||||
$sr = $a_Array->GetRow(fn (A $a): bool => $a->b == 3);
|
||||
|
||||
$this->assertInstanceOf(A::class, $sr);
|
||||
$this->assertEquals('a', $sr->a);
|
||||
$this->assertTrue($sr->c);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user