예제 #1
0
        public void SetInvalidAmountInputsTest()
        {
            var inputNode1 = new InputNode("in1");
            var inputNode2 = new InputNode("in2");
            var orNode     = new OrNode("or");
            var outputNode = new OutputNode("out");

            var nodeConnections = new List <NodeConnection>
            {
                new NodeConnection(
                    new List <NodeBase> {
                    inputNode1, inputNode2
                },
                    orNode),
                new NodeConnection(orNode, outputNode)
            };

            var inputNodes = new List <InputNode>
            {
                inputNode1,
                inputNode2
            };

            var simulation = new NodeSimulation(nodeConnections);

            var inputValues = new Dictionary <string, State>
            {
                { inputNode1.NodeId, new State(true) },
                { inputNode2.NodeId, new State(false) },
                { orNode.NodeId, new State(false) }
            };

            Assert.Throws <ArgumentException>(() => simulation.SetInputs(inputValues));
        }
예제 #2
0
        public void SetInputsTest()
        {
            var inputNode1 = new InputNode("in1");
            var inputNode2 = new InputNode("in2");
            var orNode     = new OrNode("or");
            var outputNode = new OutputNode("out");

            var nodeConnections = new List <NodeConnection>
            {
                new NodeConnection(
                    new List <NodeBase> {
                    inputNode1, inputNode2
                },
                    orNode),
                new NodeConnection(orNode, outputNode)
            };

            var inputNodes = new List <InputNode>
            {
                inputNode1,
                inputNode2
            };

            var simulation = new NodeSimulation(nodeConnections);

            var inputValues = new Dictionary <string, State>
            {
                { inputNode1.NodeId, new State(true) },
                { inputNode2.NodeId, new State(false) }
            };

            simulation.SetInputs(inputValues);

            Assert.True(simulation.GetInputNodes().Where(x => x.NodeId == inputNode1.NodeId).Single().CurrentState.LogicState);
            Assert.False(simulation.GetInputNodes().Where(x => x.NodeId == inputNode2.NodeId).Single().CurrentState.LogicState);
        }