public void OutputStreamInfos_ShouldReturnEdgeInfoList_When_OutputStreamsExist()
        {
            using (var config = new ValidatedGraphConfig())
            {
                config.Initialize(CalculatorGraphConfig.Parser.ParseFromTextFormat(_PassThroughConfigText)).AssertOk();
                var outputStreamInfos = config.OutputStreamInfos();

                Assert.AreEqual(3, outputStreamInfos.Count);

                var inStream = outputStreamInfos.First((edgeInfo) => edgeInfo.name == "in");
                Assert.AreEqual(-1, inStream.upstream);
                Assert.AreEqual(NodeType.GraphInputStream, inStream.parentNode.type);
                Assert.AreEqual(2, inStream.parentNode.index, 2);
                Assert.False(inStream.backEdge);

                var out1Stream = outputStreamInfos.First((edgeInfo) => edgeInfo.name == "out1");
                Assert.AreEqual(-1, out1Stream.upstream);
                Assert.AreEqual(NodeType.Calculator, out1Stream.parentNode.type);
                Assert.AreEqual(0, out1Stream.parentNode.index);
                Assert.False(out1Stream.backEdge);

                var outStream = outputStreamInfos.First((edgeInfo) => edgeInfo.name == "out");
                Assert.AreEqual(-1, outStream.upstream);
                Assert.AreEqual(NodeType.Calculator, outStream.parentNode.type);
                Assert.AreEqual(1, outStream.parentNode.index);
                Assert.False(outStream.backEdge);
            }
        }
 public void OutputStreamInfos_ShouldReturnEmptyList_When_NotInitialized()
 {
     using (var config = new ValidatedGraphConfig())
     {
         Assert.IsEmpty(config.OutputStreamInfos());
     }
 }