public static void Main(string[] args)
        {
            var graph = new SimpleGraph <bool>();

            var node1       = new SimpleGraphNode <bool>(1);
            var Node1Input1 = new SimpleGraphTerminal <bool>(node1);
            var Node1Input2 = new SimpleGraphTerminal <bool>(node1);
            var Node1Output = new SimpleGraphTerminal <bool>(node1);

            node1.Inputs.Add(Node1Input1);
            node1.Inputs.Add(Node1Input2);
            node1.Outputs.Add(Node1Output);

            var node2       = new SimpleGraphNode <bool>(2);
            var Node2Input1 = new SimpleGraphTerminal <bool>(node2);
            var Node2Output = new SimpleGraphTerminal <bool>(node2);

            node2.Inputs.Add(Node2Input1);
            node2.Outputs.Add(Node2Output);

            var node3       = new SimpleGraphNode <bool>(3);
            var Node3Input1 = new SimpleGraphTerminal <bool>(node3);
            var Node3Output = new SimpleGraphTerminal <bool>(node3);

            node3.Inputs.Add(Node3Input1);
            node3.Outputs.Add(Node3Output);

            var node4       = new SimpleGraphNode <bool>(4);
            var Node4Output = new SimpleGraphTerminal <bool>(node4);

            node4.Outputs.Add(Node4Output);

            var node5       = new SimpleGraphNode <bool>(5);
            var Node5Output = new SimpleGraphTerminal <bool>(node5);

            node5.Outputs.Add(Node5Output);

            var node6       = new SimpleGraphNode <bool>(6);
            var Node6Input1 = new SimpleGraphTerminal <bool>(node6);

            node6.Inputs.Add(Node6Input1);

            graph.AddNode(node1);
            graph.AddNode(node2);
            graph.AddNode(node3);
            graph.AddNode(node4);
            graph.AddNode(node5);
            graph.AddNode(node6);

            graph.AddEdge(new SimpleGraphEdge <bool>(Node3Output, Node6Input1));
            graph.AddEdge(new SimpleGraphEdge <bool>(Node1Output, Node2Input1));
            graph.AddEdge(new SimpleGraphEdge <bool>(Node2Output, Node3Input1));
            graph.AddEdge(new SimpleGraphEdge <bool>(Node4Output, Node1Input1));
            graph.AddEdge(new SimpleGraphEdge <bool>(Node5Output, Node1Input2));

            graph.CalculateFromNode(node3);

            Console.ReadKey();
        }