public void Fire_CachesInput() { // Setup test values var mockTarget = new Mock<INeuralNode>(); var mockSource = new Mock<INeuralNode>(); const double Weight = 0.1d; const double Expected = 0.123d; // Setup target var connection = new NeuralConnection(Weight, mockSource.Object, mockTarget.Object); // Execute connection.Fire(Expected); // Verify Assert.AreEqual(Expected, connection.CachedInput); }
public void Fire_ModifiesInputSignal() { // Setup test values var mockTarget = new Mock<INeuralNode>(); var mockSource = new Mock<INeuralNode>(); const double Weight = 0.123d; const double Input = 2.34d; const double Expected = Weight * Input; // Setup target var connection = new NeuralConnection(Weight, mockSource.Object, mockTarget.Object); // Execute connection.Fire(Input); // Verify mockTarget.Verify(mock => mock.Fire(Expected)); }
public void Fire_WontFireWhenAlreadyFired() { // Setup test values var mockTarget = new Mock<INeuralNode>(); var mockSource = new Mock<INeuralNode>(); const double Weight = 0.123d; const double Input = 2.34d; // Setup target var connection = new NeuralConnection(Weight, mockSource.Object, mockTarget.Object); // Execute connection.Fire(Input); connection.Fire(Input); }
public void Fire_MaintainsFiredFlag() { // Setup test values var mockTarget = new Mock<INeuralNode>(); var mockSource = new Mock<INeuralNode>(); const double Weight = 0.123d; const double Input = 2.34d; // Setup target var connection = new NeuralConnection(Weight, mockSource.Object, mockTarget.Object); // Execute var preFiredFlag = connection.IsFired; connection.Fire(Input); var postFiredFlag = connection.IsFired; connection.ClearFire(); var postClearedFlag = connection.IsFired; // Verify Assert.IsFalse(preFiredFlag); Assert.IsTrue(postFiredFlag); Assert.IsFalse(postClearedFlag); }