public void TestScenario_05_WorkedExample_0() { /* * 2y+2x-y+2x+4=0 * * si= */ //(2*y)+(2*x)+(-1*y)+(2*x)+4=0 var x = new Var('x'); var y = new Var('y'); var term1 = new Term(Expression.Multiply, new List<object>() { 2, y }); var term2 = new Term(Expression.Multiply, new List<object>() { 2, x }); var term3 = new Term(Expression.Multiply, new List<object>() { -1, y }); var term4 = new Term(Expression.Multiply, new List<object>() { 2, x }); var term = new Term(Expression.Add, new List<object>() { term1, term2, term3, term4, 4 }); var eq = new Equation(term, 0); LineSymbol lineSymbol; bool result = eq.IsLineEquation(out lineSymbol); Assert.True(result); var graph = new RelationGraph(); graph.AddNode(lineSymbol); var query = new Query("graph"); GraphNode gn = graph.AddNode(query); var qn = gn as QueryNode; Assert.True(qn != null); Assert.True(qn.InternalNodes.Count == 1); var cachedShapeNode = qn.InternalNodes[0] as ShapeNode; Assert.NotNull(cachedShapeNode); var cachedLs = cachedShapeNode.ShapeSymbol as LineSymbol; Assert.NotNull(cachedLs); Assert.True(cachedLs.OutputType == LineType.GeneralForm); //Assert.True(cachedLs.ToString().Equals("y=-4x-4")); //Assert.True(cachedLs.Traces.Count == 5); var query2 = new Query("s"); graph.AddNode(query2); Assert.True(query2.Success); Assert.True(query2.CachedEntities.Count == 1); var gGoal = query2.CachedEntities.ToList()[0] as EqGoal; Assert.NotNull(gGoal); Assert.True(gGoal.Rhs.ToString().Equals("-4")); //Assert.True(gGoal.Traces.Count == 6); }
public void Test_Line_Unify_4() { //test //(2*y)+(2*x)+(-1*y)+(2*x)+4=0 var x = new Var('x'); var y = new Var('y'); var term1 = new Term(Expression.Multiply, new List<object>() { 2, y }); var term2 = new Term(Expression.Multiply, new List<object>() { 2, x }); var term3 = new Term(Expression.Multiply, new List<object>() { -1, y }); var term4 = new Term(Expression.Multiply, new List<object>() { 2, x }); var term = new Term(Expression.Add, new List<object>() { term1, term2, term3, term4, 4 }); var eq = new Equation(term, 0); LineSymbol ls; bool result = eq.IsLineEquation(out ls); Assert.True(result); //Assert.True(ls.Traces.Count == 3); }
public void Test_Line_Unify_2() { //3y-y+2x+1=4 var x = new Var("x"); var y = new Var("y"); var term1 = new Term(Expression.Multiply, new List<object>() { 3, y }); var term2 = new Term(Expression.Multiply, new List<object>() { -1, y }); var term3 = new Term(Expression.Multiply, new List<object>() { 2, x }); var term = new Term(Expression.Add, new List<object>() { term1, term2, term3, 4 }); var eq = new Equation(term, 4); LineSymbol ls; bool result = eq.IsLineEquation(out ls); Assert.True(result); Assert.NotNull(ls); //Assert.True(ls.Traces.Count == 3); var lineType = ls.Shape.GetInputType() as LineType?; Assert.NotNull(lineType); Assert.True(lineType.Value == LineType.GeneralForm); }
public void Test_Line_Unify_3() { //y=2x+3 var x = new Var("x"); var y = new Var("y"); var term3 = new Term(Expression.Multiply, new List<object>() { 2, x }); var term = new Term(Expression.Add, new List<object>() { term3, 3 }); var eq = new Equation(y, term); LineSymbol ls; bool result = eq.IsLineEquation(out ls); Assert.True(result); Assert.NotNull(ls); Assert.True(ls.Traces.Count == 1); var lineType = ls.Shape.GetInputType() as LineType?; Assert.NotNull(lineType); Assert.True(lineType.Value == LineType.SlopeIntercept); }
public void Test_Line_Unify_1() { //2x+3y-1=0 var x = new Var("x"); var term1 = new Term(Expression.Multiply, new List<object>() { 2, x }); var y = new Var("y"); var term2 = new Term(Expression.Multiply, new List<object>() { 3, y }); var term = new Term(Expression.Add, new List<object>() { term1, term2, -1 }); var eq = new Equation(term, 0); LineSymbol ls; bool result = eq.IsLineEquation(out ls); Assert.True(result); Assert.NotNull(ls); Assert.True(ls.Traces.Count == 2); object lineType = ls.Shape.GetInputType() as LineType?; Assert.NotNull(lineType); }