assertEquals([], $layer->getNodes()); } public function testLayerInitializationWithDefaultNodesType(): void { $layer = new Layer($number = 5); $this->assertCount($number, $layer->getNodes()); foreach ($layer->getNodes() as $node) { $this->assertInstanceOf(Neuron::class, $node); } } public function testLayerInitializationWithExplicitNodesType(): void { $layer = new Layer($number = 5, $class = Bias::class); $this->assertCount($number, $layer->getNodes()); foreach ($layer->getNodes() as $node) { $this->assertInstanceOf($class, $node); } } public function testThrowExceptionOnInvalidNodeClass(): void { $this->expectException(InvalidArgumentException::class); new Layer(1, stdClass::class); } public function testAddNodesToLayer(): void { $layer = new Layer(); $layer->addNode($node1 = new Neuron()); $layer->addNode($node2 = new Neuron()); $this->assertEquals([$node1, $node2], $layer->getNodes()); } }