public void TestTransformerNoElement() { var f = new ZenFunction <uint, uint>(i => i + 1); var t = f.Transformer(); var emptySet = t.InputSet((x, y) => x + 2 == y); emptySet.Element(); }
public void TestTransformerTransformForward() { var f = new ZenFunction <uint, bool>(i => i >= 10); var t = f.Transformer(); var inputSet1 = t.InputSet((i, b) => b); var outputSet = t.TransformForward(inputSet1); var inputSet2 = t.TransformBackwards(outputSet); Assert.AreEqual(inputSet1, inputSet2); }
public void TestTransformerArbitrary() { var b = Arbitrary <bool>(); var f1 = new ZenFunction <uint, bool>(i => Or(b, i <= 10)); var f2 = new ZenFunction <bool, uint>(b => 3); var t1 = f1.Transformer(); var t2 = f2.Transformer(); var set1 = t1.InputSet(); var set2 = t2.OutputSet(); t1.TransformForward(set2); }
public void TestTransformerVariablesAlign() { var f1 = new ZenFunction <uint, uint>(i => i + 1); var f2 = new ZenFunction <uint, uint>(i => i + 2); var t1 = f1.Transformer(); var t2 = f2.Transformer(); var set1 = t1.InputSet((x, y) => y == 10); var set2 = t2.InputSet((x, y) => y == 11); var set3 = set1.Intersect(set2); Assert.AreEqual(set1, set2); Assert.AreEqual(9U, set3.Element()); }
public void TestTransformerInputSets() { var f = new ZenFunction <uint, uint>(i => i + 1); var t = f.Transformer(); var inSet1 = t.InputSet((x, y) => y == 10); var inSet2 = t.InputSet((x, y) => y == 11); var inSet3 = inSet1.Intersect(inSet2); var inSet4 = inSet1.Union(inSet2); Assert.AreEqual(9U, inSet1.Element()); Assert.AreEqual(10U, inSet2.Element()); Assert.IsTrue(inSet3.IsEmpty()); Assert.IsFalse(inSet4.IsEmpty()); }
public void TestTransformerCombinations() { var f1 = new ZenFunction <uint, bool>(i => i < 10); var f2 = new ZenFunction <bool, uint>(b => If <uint>(b, 11, 9)); var t1 = f1.Transformer(); var t2 = f2.Transformer(); var set1 = t1.InputSet((i, b) => b); var set2 = t1.TransformForward(set1); var set3 = t2.TransformForward(set2); var set4 = t2.OutputSet((b, i) => b); Assert.AreEqual(11U, set3.Element()); Assert.AreEqual(11U, set4.Element()); }
public void TestTransformerObject() { var f = new ZenFunction <IpHeader, bool>(p => And(p.GetDstIp().GetValue() <= 4, p.GetSrcIp().GetValue() <= 5)); var t = f.Transformer(); /* var set = t.InputSet((p, b) => Not(b)); * Assert.IsFalse(set.Element().Value.DstIp.Value <= 4 && set.Element().Value.SrcIp.Value <= 5); * * var outputSet = t.TransformForward(set); * Assert.AreEqual(false, outputSet.Element().Value); * * var inputSet = t.TransformBackwards(outputSet); * Assert.IsFalse(set.Element().Value.DstIp.Value <= 4 && set.Element().Value.SrcIp.Value <= 5); */ }
public void TestPacketSet() { var rnd = new System.Random(); for (int j = 0; j < 2; j++) { var i = (uint)rnd.Next(); var f = new ZenFunction <IpHeader, bool>(p => { return(p.GetDstIp().GetValue() == i); }); StateSetTransformer <IpHeader, bool> transformer = f.Transformer(); var set = transformer.InputSet((pkt, matches) => matches); Assert.AreEqual(i, set.Element().DstIp.Value); } }
public void TestDiagramBackendException3() { var f = new ZenFunction <string, string>(s => s + "a"); f.Transformer(); }