public void TestList() { Parser p = new Parser(); Ast.ListNode list = new Ast.ListNode(); Ast.ListNode list2 = new Ast.ListNode(); Assert.AreEqual(list, list2); list.Elements.Add(new Ast.IntegerNode(42)); list2.Elements.Add(new Ast.IntegerNode(99)); Assert.AreNotEqual(list, list2); list2.Elements.Clear(); list2.Elements.Add(new Ast.IntegerNode(42)); Assert.AreEqual(list, list2); list2.Elements.Add(new Ast.IntegerNode(43)); list2.Elements.Add(new Ast.IntegerNode(44)); Assert.AreNotEqual(list, list2); Assert.AreEqual(new Ast.ListNode(), p.Parse("[]").Root); Assert.AreEqual(list, p.Parse("[42]").Root); Assert.Throws <ParseException>(() => p.Parse("[42,]")); Assert.AreEqual(list2, p.Parse("[ 42,43, 44 ]").Root); Assert.Throws <ParseException>(() => p.Parse("[42,43}")); Assert.Throws <ParseException>(() => p.Parse("[]@")); Assert.Throws <ParseException>(() => p.Parse("[42,43]@")); }
public void TestEquality() { Ast.INode n1, n2; n1 = new Ast.IntegerNode(42); n2 = new Ast.IntegerNode(42); Assert.AreEqual(n1, n2); n2 = new Ast.IntegerNode(43); Assert.AreNotEqual(n1, n2); n1 = new Ast.StringNode("foo"); n2 = new Ast.StringNode("foo"); Assert.AreEqual(n1, n2); n2 = new Ast.StringNode("bar"); Assert.AreNotEqual(n1, n2); n1 = new Ast.ComplexNumberNode() { Real = 1.1, Imaginary = 2.2 }; n2 = new Ast.ComplexNumberNode() { Real = 1.1, Imaginary = 2.2 }; Assert.AreEqual(n1, n2); n2 = new Ast.ComplexNumberNode() { Real = 1.1, Imaginary = 3.3 }; Assert.AreNotEqual(n1, n2); n1 = new Ast.KeyValueNode() { Key = new Ast.IntegerNode(42), Value = new Ast.IntegerNode(42) }; n2 = new Ast.KeyValueNode() { Key = new Ast.IntegerNode(42), Value = new Ast.IntegerNode(42) }; Assert.AreEqual(n1, n2); n1 = new Ast.KeyValueNode() { Key = new Ast.IntegerNode(43), Value = new Ast.IntegerNode(43) }; Assert.AreNotEqual(n1, n2); n1 = Ast.NoneNode.Instance; n2 = Ast.NoneNode.Instance; Assert.AreEqual(n1, n2); n2 = new Ast.IntegerNode(42); Assert.AreNotEqual(n1, n2); n1 = new Ast.DictNode() { Elements = new List <Ast.INode>() { new Ast.KeyValueNode() { Key = new Ast.IntegerNode(42), Value = new Ast.IntegerNode(42) } } }; n2 = new Ast.DictNode() { Elements = new List <Ast.INode>() { new Ast.KeyValueNode() { Key = new Ast.IntegerNode(42), Value = new Ast.IntegerNode(42) } } }; Assert.AreEqual(n1, n2); n2 = new Ast.DictNode() { Elements = new List <Ast.INode>() { new Ast.KeyValueNode() { Key = new Ast.IntegerNode(42), Value = new Ast.IntegerNode(43) } } }; Assert.AreNotEqual(n1, n2); n1 = new Ast.ListNode() { Elements = new List <Ast.INode>() { new Ast.IntegerNode(42) } }; n2 = new Ast.ListNode() { Elements = new List <Ast.INode>() { new Ast.IntegerNode(42) } }; Assert.AreEqual(n1, n2); n2 = new Ast.ListNode() { Elements = new List <Ast.INode>() { new Ast.IntegerNode(43) } }; Assert.AreNotEqual(n1, n2); n1 = new Ast.SetNode() { Elements = new List <Ast.INode>() { new Ast.IntegerNode(42) } }; n2 = new Ast.SetNode() { Elements = new List <Ast.INode>() { new Ast.IntegerNode(42) } }; Assert.AreEqual(n1, n2); n2 = new Ast.SetNode() { Elements = new List <Ast.INode>() { new Ast.IntegerNode(43) } }; Assert.AreNotEqual(n1, n2); n1 = new Ast.TupleNode() { Elements = new List <Ast.INode>() { new Ast.IntegerNode(42) } }; n2 = new Ast.TupleNode() { Elements = new List <Ast.INode>() { new Ast.IntegerNode(42) } }; Assert.AreEqual(n1, n2); n2 = new Ast.TupleNode() { Elements = new List <Ast.INode>() { new Ast.IntegerNode(43) } }; Assert.AreNotEqual(n1, n2); }
public void TestList() { Parser p = new Parser(); Ast.ListNode list = new Ast.ListNode(); Ast.ListNode list2 = new Ast.ListNode(); Assert.AreEqual(list, list2); list.Elements.Add(new Ast.IntegerNode(42)); list2.Elements.Add(new Ast.IntegerNode(99)); Assert.AreNotEqual(list, list2); list2.Elements.Clear(); list2.Elements.Add(new Ast.IntegerNode(42)); Assert.AreEqual(list, list2); list2.Elements.Add(new Ast.IntegerNode(43)); list2.Elements.Add(new Ast.IntegerNode(44)); Assert.AreNotEqual(list, list2); Assert.AreEqual(new Ast.ListNode(), p.Parse("[]").Root); Assert.AreEqual(list, p.Parse("[42]").Root); Assert.AreEqual(list2, p.Parse("[ 42,43, 44 ]").Root); Assert.Throws<ParseException>(()=>p.Parse("[42,43}")); Assert.Throws<ParseException>(()=>p.Parse("[]@")); Assert.Throws<ParseException>(()=>p.Parse("[42,43]@")); }
public void TestEquality() { Ast.INode n1, n2; n1 = new Ast.IntegerNode(42); n2 = new Ast.IntegerNode(42); Assert.AreEqual(n1, n2); n2 = new Ast.IntegerNode(43); Assert.AreNotEqual(n1, n2); n1 = new Ast.StringNode("foo"); n2 = new Ast.StringNode("foo"); Assert.AreEqual(n1, n2); n2 = new Ast.StringNode("bar"); Assert.AreNotEqual(n1, n2); n1 = new Ast.ComplexNumberNode() { Real=1.1, Imaginary=2.2 }; n2 = new Ast.ComplexNumberNode() { Real=1.1, Imaginary=2.2 }; Assert.AreEqual(n1, n2); n2 = new Ast.ComplexNumberNode() { Real=1.1, Imaginary=3.3 }; Assert.AreNotEqual(n1, n2); n1=new Ast.KeyValueNode() { Key=new Ast.IntegerNode(42), Value=new Ast.IntegerNode(42) }; n2=new Ast.KeyValueNode() { Key=new Ast.IntegerNode(42), Value=new Ast.IntegerNode(42) }; Assert.AreEqual(n1, n2); n1=new Ast.KeyValueNode() { Key=new Ast.IntegerNode(43), Value=new Ast.IntegerNode(43) }; Assert.AreNotEqual(n1,n2); n1=Ast.NoneNode.Instance; n2=Ast.NoneNode.Instance; Assert.AreEqual(n1, n2); n2=new Ast.IntegerNode(42); Assert.AreNotEqual(n1, n2); n1=new Ast.DictNode() { Elements=new List<Ast.INode>() { new Ast.KeyValueNode() { Key=new Ast.IntegerNode(42), Value=new Ast.IntegerNode(42) } } }; n2=new Ast.DictNode() { Elements=new List<Ast.INode>() { new Ast.KeyValueNode() { Key=new Ast.IntegerNode(42), Value=new Ast.IntegerNode(42) } } }; Assert.AreEqual(n1, n2); n2=new Ast.DictNode() { Elements=new List<Ast.INode>() { new Ast.KeyValueNode() { Key=new Ast.IntegerNode(42), Value=new Ast.IntegerNode(43) } } }; Assert.AreNotEqual(n1, n2); n1=new Ast.ListNode() { Elements=new List<Ast.INode>() { new Ast.IntegerNode(42) } }; n2=new Ast.ListNode() { Elements=new List<Ast.INode>() { new Ast.IntegerNode(42) } }; Assert.AreEqual(n1,n2); n2=new Ast.ListNode() { Elements=new List<Ast.INode>() { new Ast.IntegerNode(43) } }; Assert.AreNotEqual(n1,n2); n1=new Ast.SetNode() { Elements=new List<Ast.INode>() { new Ast.IntegerNode(42) } }; n2=new Ast.SetNode() { Elements=new List<Ast.INode>() { new Ast.IntegerNode(42) } }; Assert.AreEqual(n1,n2); n2=new Ast.SetNode() { Elements=new List<Ast.INode>() { new Ast.IntegerNode(43) } }; Assert.AreNotEqual(n1,n2); n1=new Ast.TupleNode() { Elements=new List<Ast.INode>() { new Ast.IntegerNode(42) } }; n2=new Ast.TupleNode() { Elements=new List<Ast.INode>() { new Ast.IntegerNode(42) } }; Assert.AreEqual(n1,n2); n2=new Ast.TupleNode() { Elements=new List<Ast.INode>() { new Ast.IntegerNode(43) } }; Assert.AreNotEqual(n1,n2); }