public void test_symbolic_label() { //ax+2y-1=0 var variable = new Var('a'); var line = new Line(variable, 2, -1); var lineSymbol = new LineSymbol(line); string str = lineSymbol.ToString(); Assert.True(str.Equals("ax+2y-1=0")); line.Label = "M"; Assert.True(lineSymbol.ToString().Equals("M(ax+2y-1=0)")); }
public void Test_SlopeIntercept_2() { //general form -> slope intercept form var a = new Var('a'); double b = 2.0d; double c = 3.0d; var line = new Line(a, b, c); Assert.False(line.Concrete); Assert.True(line.InputType == LineType.GeneralForm); var ls = new LineSymbol(line); Assert.True(ls.ToString().Equals("ax+2y+3=0")); ls.OutputType = LineType.SlopeIntercept; Assert.True(ls.ToString().Equals("y=(-a)/2x-1.5")); }
public void Test_SlopeIntercept_1() { //general form -> slope intercept form double a = 1.0d; double b = 2.0d; double c = 3.0d; var line = new Line(a, b, c); Assert.True(line.Concrete); Assert.True(line.InputType == LineType.GeneralForm); var ls = new LineSymbol(line); Assert.True(ls.ToString().Equals("x+2y+3=0")); ls.OutputType = LineType.SlopeIntercept; Assert.True(ls.ToString().Equals("y=-0.5x-1.5")); }
public void Test_Line_1() { var line = new Line(3.0, 1.0, 1.0); line.Label = "A"; var lineSymbol = new LineSymbol(line); string str = lineSymbol.ToString(); Assert.True(str.Equals("A(3x+y+1=0)")); Expr expr = lineSymbol.ToExpr(); }
public void test_symbolic_1() { //x+2y+3=0 var line = new Line(1, 2, 3); var lineSymbol = new LineSymbol(line); string str = lineSymbol.ToString(); Assert.True(str.Equals("x+2y+3=0")); //-x+2y+3=0 line = new Line(-1, 2, 3); lineSymbol = new LineSymbol(line); str = lineSymbol.ToString(); Assert.True(str.Equals("-x+2y+3=0")); //x+y+1=0 line = new Line(1, 1, 1); lineSymbol = new LineSymbol(line); str = lineSymbol.ToString(); Assert.True(str.Equals("x+y+1=0")); //x-y+1=0 line = new Line(1, -1, 1); lineSymbol = new LineSymbol(line); str = lineSymbol.ToString(); Assert.True(str.Equals("x-y+1=0")); //x-3y-2=0 line = new Line(1, -3, -2); lineSymbol = new LineSymbol(line); str = lineSymbol.ToString(); Assert.True(str.Equals("x-3y-2=0")); //x=0 line = new Line(1, 0, 0); lineSymbol = new LineSymbol(line); str = lineSymbol.ToString(); Assert.True(str.Equals("x=0")); //y=0 line = new Line(0, 1, 0); lineSymbol = new LineSymbol(line); str = lineSymbol.ToString(); Assert.True(str.Equals("y=0")); }
public void test_symbolic_2() { //ax+2y-1=0 var variable = new Var('a'); var line = new Line(variable, 2, -1); var lineSymbol = new LineSymbol(line); string str = lineSymbol.ToString(); Assert.True(str.Equals("ax+2y-1=0")); //x+by+c=0 var variable2 = new Var('b'); var variable3 = new Var('c'); line = new Line(1, variable2, variable3); lineSymbol = new LineSymbol(line); str = lineSymbol.ToString(); Assert.True(str.Equals("x+by+c=0")); //ax=0 line = new Line(variable, 0, 0); lineSymbol = new LineSymbol(line); str = lineSymbol.ToString(); Assert.True(str.Equals("ax=0")); //by+3=0 line = new Line(0, variable2, 3); lineSymbol = new LineSymbol(line); str = lineSymbol.ToString(); Assert.True(str.Equals("by+3=0")); //x-by+1=0 => not allowed -> Exception /* var term = new Term(Expression.Multiply, * new Tuple<object, object>(-1, variable2)); * line = new Line(1, term, 3); * lineSymbol = new LineSymbol(line); * str = lineSymbol.ToString(); * Assert.True(str.Equals("x+(-1*b)y+3=0"));*/ }
public static Expr ToExpr(this LineSymbol ls) { return(Text.Convert(ls.ToString())); }
//forward solving public static void FromLineToIntercept(LineSymbol ls, EqGoal goal) { var line = ls.Shape as Line; Debug.Assert(line != null); var lst = new List <TraceStep>(); string step1metaRule = "Given the line slope intercept form y=mx+K, the y-intercept is K."; string step1AppliedRule = String.Format("Given line slope-intercept form {0}, the slope is {1}.", ls.ToString(), ls.SymIntercept); string kc = GeometryScaffold.KC_LineInterceptForm; var ts = new TraceStep(ls, goal, kc, step1metaRule, step1AppliedRule); lst.Add(ts); var strategy = strategy_si_intercept; var tuple = new Tuple <object, object>(strategy, lst); goal.Traces.Add(tuple); }
public void test_symbolic_2() { //ax+2y-1=0 var variable = new Var('a'); var line = new Line(variable, 2, -1); var lineSymbol = new LineSymbol(line); string str = lineSymbol.ToString(); Assert.True(str.Equals("ax+2y-1=0")); //x+by+c=0 var variable2 = new Var('b'); var variable3 = new Var('c'); line = new Line(1, variable2, variable3); lineSymbol = new LineSymbol(line); str = lineSymbol.ToString(); Assert.True(str.Equals("x+by+c=0")); //ax=0 line = new Line(variable, 0, 0); lineSymbol = new LineSymbol(line); str = lineSymbol.ToString(); Assert.True(str.Equals("ax=0")); //by+3=0 line = new Line(0, variable2, 3); lineSymbol = new LineSymbol(line); str = lineSymbol.ToString(); Assert.True(str.Equals("by+3=0")); //x-by+1=0 => not allowed -> Exception /* var term = new Term(Expression.Multiply, new Tuple<object, object>(-1, variable2)); line = new Line(1, term, 3); lineSymbol = new LineSymbol(line); str = lineSymbol.ToString(); Assert.True(str.Equals("x+(-1*b)y+3=0"));*/ }
//forward solving public static void FromLineToIntercept(LineSymbol ls, EqGoal goal) { var line = ls.Shape as Line; Debug.Assert(line != null); var lst = new List<TraceStep>(); string step1metaRule = "Given the line slope intercept form y=mx+K, the y-intercept is K."; string step1AppliedRule = String.Format("Given line slope-intercept form {0}, the slope is {1}.", ls.ToString(), ls.SymIntercept); string kc = GeometryScaffold.KC_LineInterceptForm; var ts = new TraceStep(ls, goal, kc, step1metaRule, step1AppliedRule); lst.Add(ts); var strategy = strategy_si_intercept; var tuple = new Tuple<object, object>(strategy, lst); goal.Traces.Add(tuple); }