Esempio n. 1
0
        public void GetMergedStateOrNull_TwoConcreteStructsWithDifferentFields()
        {
            var res = SolvingFunctions.GetMergedStateOrNull(
                new StateStruct(
                    new Dictionary <string, TicNode>
            {
                { "i", TicNode.CreateTypeVariableNode(StatePrimitive.I32) },
                { "r", TicNode.CreateTypeVariableNode(StatePrimitive.Real) }
            }
                    ),
                new StateStruct(
                    new Dictionary <string, TicNode>
            {
                { "r", TicNode.CreateTypeVariableNode(StatePrimitive.Real) },
                { "b", TicNode.CreateTypeVariableNode(StatePrimitive.Bool) }
            }));
            var expected = new StateStruct(
                new Dictionary <string, TicNode>
            {
                { "i", TicNode.CreateTypeVariableNode(StatePrimitive.I32) },
                { "r", TicNode.CreateTypeVariableNode(StatePrimitive.Real) },
                { "b", TicNode.CreateTypeVariableNode(StatePrimitive.Bool) }
            });

            Assert.AreEqual(res, expected);
        }
Esempio n. 2
0
        public void GetMergedStateOrNull_EmptyAndNonEmptyStruct()
        {
            var nonEmpty = new StateStruct(
                new Dictionary <string, TicNode>
            {
                { "i", TicNode.CreateTypeVariableNode(StatePrimitive.I32) },
                { "r", TicNode.CreateTypeVariableNode(StatePrimitive.Real) }
            }
                );

            var res = SolvingFunctions.GetMergedStateOrNull(
                nonEmpty,
                new StateStruct());
            var expected = new StateStruct(
                new Dictionary <string, TicNode>
            {
                { "i", TicNode.CreateTypeVariableNode(StatePrimitive.I32) },
                { "r", TicNode.CreateTypeVariableNode(StatePrimitive.Real) }
            });

            Assert.AreEqual(res, expected);

            var invertedres = SolvingFunctions.GetMergedStateOrNull(
                new StateStruct(), nonEmpty);

            Assert.AreEqual(res, invertedres);
        }
Esempio n. 3
0
        public void GetMergedStateOrNull_ConstrainsAndPrimitiveThatFit()
        {
            var res = SolvingFunctions.GetMergedStateOrNull(StatePrimitive.I64,
                                                            new ConstrainsState(StatePrimitive.I16, StatePrimitive.Real));

            Assert.AreEqual(res, StatePrimitive.I64);
        }
Esempio n. 4
0
        public void GetMergedStateOrNull_TwoNonEmpty()
        {
            var res = SolvingFunctions.GetMergedStateOrNull(
                new StateStruct(),
                new StateStruct());

            Assert.AreEqual(res, new StateStruct());
        }
Esempio n. 5
0
        public void GetMergedStateOrNull_TwoSameConcreteStructs()
        {
            var res = SolvingFunctions.GetMergedStateOrNull(
                new StateStruct("a", TicNode.CreateTypeVariableNode(StatePrimitive.I32)),
                new StateStruct("a", TicNode.CreateTypeVariableNode(StatePrimitive.I32)));

            Assert.AreEqual(res, new StateStruct("a", TicNode.CreateTypeVariableNode(StatePrimitive.I32)));
        }
Esempio n. 6
0
        public void GetMergedStateOrNull_ConstrainsAndPrimitive_ReturnsPrimitive()
        {
            var a      = new ConstrainsState(StatePrimitive.U16, StatePrimitive.Real);
            var b      = StatePrimitive.I32;
            var merged = SolvingFunctions.GetMergedStateOrNull(a, b);

            Assert.AreEqual(StatePrimitive.I32, merged);
        }
Esempio n. 7
0
 void AssertGetMergedStateIsNull(ITicNodeState stateA, ITicNodeState stateB)
 {
     Assert.IsNull(SolvingFunctions.GetMergedStateOrNull(stateA, stateB));
     Assert.IsNull(SolvingFunctions.GetMergedStateOrNull(stateB, stateA));
 }
Esempio n. 8
0
        public void GetMergedStateOrNull_TwoSameConcreteArrays()
        {
            var res = SolvingFunctions.GetMergedStateOrNull(StateArray.Of(StatePrimitive.I32), StateArray.Of(StatePrimitive.I32));

            Assert.AreEqual(res, StateArray.Of(StatePrimitive.I32));
        }
Esempio n. 9
0
        public void GetMergedStateOrNull_ConstrainsThatFitAndPrimitive()
        {
            var res = SolvingFunctions.GetMergedStateOrNull(new ConstrainsState(StatePrimitive.U24, StatePrimitive.I48), StatePrimitive.I32);

            Assert.AreEqual(res, StatePrimitive.I32);
        }
Esempio n. 10
0
        public void GetMergedStateOrNull_EmptyConstrainsAndPrimitive()
        {
            var res = SolvingFunctions.GetMergedStateOrNull(new ConstrainsState(), StatePrimitive.I32);

            Assert.AreEqual(res, StatePrimitive.I32);
        }
Esempio n. 11
0
        public void GetMergedStateOrNull_TwoSamePrimitives()
        {
            var res = SolvingFunctions.GetMergedStateOrNull(StatePrimitive.I32, StatePrimitive.I32);

            Assert.AreEqual(res, StatePrimitive.I32);
        }