command = $this->setupDay(); } public function testPart1(): void { $this->assertSame(static::$part1ExampleResult, $this->command->part1ExampleResult()); $this->assertSame(static::$part1Result, $this->command->part1Result()); } public function testPart2(): void { $this->assertSame(static::$part2ExampleResult, $this->command->part2ExampleResult()); $this->assertSame(static::$part2Result, $this->command->part2Result()); } abstract public function setupDay(): AbstractCommand; }