def test_wait_for_all_signals(self):
        sender_1 = ReceiveAllNeuron(self.simple_activation())
        sender_2 = ReceiveAllNeuron(self.simple_activation())
        receiver = ReceiveAllNeuron(self.simple_activation())

        sender_1.connect_to(receiver)
        sender_2.connect_to(receiver)

        sender_1.receive_signal(2.0)
        self.assertEqual(receiver.output, 0.0)
        self.assertFalse(receiver.allSignalsReceived())
        
        sender_2.receive_signal(3.0)
        self.assertEqual(receiver.output, 5.0)
        self.assertTrue(receiver.allSignalsReceived())

        sender_1.reset()
        sender_2.reset()
        receiver.reset()

        self.assertEqual(sender_1.output, 0.0)
        self.assertEqual(sender_2.output, 0.0)
        self.assertEqual(receiver.output, 0.0)
        self.assertFalse(receiver.allSignalsReceived())