assertEquals($symbolPositions, $line->symbolPositions); $this->assertEquals($numbers, array_map( fn (Number $n): int => $n->value, $line->numbers, )); $this->assertEquals($valids, array_map( fn (Number $n): int => $n->value, $line->getValidNumbers(), )); } public function testSmallInput(): void { $line = Line::fromString( "................939...644..............791..*.551....35...937..806...............&.............536.930...703...565......*...............*640" ); $validNumbers = $line->getValidNumbers(); $this->assertEquals(1, count($validNumbers)); } public function testSolve(): void { $d03 = new D03(D03::TESTFILE); $this->assertEquals(4361, $d03->solve()); } public function testValidNumbers(): void { $d03 = new D03(D03::TESTFILE); $lines = $d03->getLines(); $this->assertEquals( [467], array_map(fn (Number $n):int => $n->value, array_shift($lines)->getValidNumbers()) ); $this->assertEquals( [], array_map(fn (Number $n):int => $n->value, array_shift($lines)->getValidNumbers()) ); $this->assertEquals( [35, 633], array_map(fn (Number $n):int => $n->value, array_shift($lines)->getValidNumbers()) ); $this->assertEquals( [], array_map(fn (Number $n):int => $n->value, array_shift($lines)->getValidNumbers()) ); } }