public void TestGenerate() { Func<double> createConstans = new EnumerableNext<double>(new double[] { 1, 2, 3 }.Repeat()).Next; TestGenerate(new[] { new Variable("x"), new Variable("y") }, createConstans, 3, "x"); TestGenerate(new Operator[] { new Variable("x"), new Variable("y"), OperatorsLibrary.Abs, OperatorsLibrary.Sin }, createConstans, 5, "abs abs sin sin y"); TestGenerate(new Operator[] { new Variable("x"), new Variable("y"), OperatorsLibrary.Sum, OperatorsLibrary.Mul, OperatorsLibrary.Sin, OperatorsLibrary.Abs }, createConstans, 5, "sin sin abs mul x x"); TestGenerate(new Operator[] { new Variable("x"), new Variable("y"), new Variable("z"), OperatorsLibrary.Pow, OperatorsLibrary.IfG }, createConstans, 6, "atan pow pow 1 atan atan pow z z 2"); TestGenerate(new Operator[] { new Variable("x"), new Variable("y"), new Variable("z"), OperatorsLibrary.Div, OperatorsLibrary.Max }, createConstans, 4, "atan div atan div y z max x x"); TestGenerate(new Operator[] { new Variable("x"), new Variable("y"), new Variable("z"), OperatorsLibrary.Mod}, createConstans, 2, "mod x sum abs y 0.01"); }
public static Random Setup(IEnumerable<double> nextDoubles) { Mock<Random> rndMock = new Mock<Random>(); EnumerableNext<double> loopedDoubles = new EnumerableNext<double>(nextDoubles.Repeat()); rndMock.Setup(r => r.NextDouble()).Returns(loopedDoubles.Next); return rndMock.Object; }
public void TestGenerateUnBinOpBalancedTree() { Func<double> createConstans = new EnumerableNext<double>(new double[] { 1, 2, 3 }.Repeat()).Next; TestGenerate(new Operator[] { new Variable("x"), new Variable("y"), OperatorsLibrary.Sum, OperatorsLibrary.Mul, OperatorsLibrary.Sin, OperatorsLibrary.Abs }, createConstans, 5, "sin sum sin mul y y abs mul x x", true); }