public void PerformanceTest() { var compiler = new FormulaCompiler(); compiler.WithInfo(FormulaCompilerBuildInfoLevels.Warning); var s = Stopwatch.StartNew(); for (int i = 0; i < 1e4; i++) { var f = compiler.Compile <int>("2*5"); } s.Stop(); Debug.WriteLine("Compile time: " + s.Elapsed); var func = compiler.Compile <int>("2*5"); s = Stopwatch.StartNew(); for (int i = 0; i < 1e6; i++) { var res = func(); } s.Stop(); Debug.WriteLine("Compile time: " + s.Elapsed); }
public void Simple() { var compiler = new FormulaCompiler() .WithInfo(FormulaCompilerBuildInfoLevels.None); compiler.Compile <int>("5+4"); TestTime.Measure(1000, () => compiler.Compile <int>("5+4")); }
private void Compile(string formula, params int[] expectedErrorNumbers) { _compiler.Compile <int>(formula); //} //catch (ParseException e) //{ // Debug.WriteLine(e.Message); // foreach (var errorNumber in expectedErrorNumbers) // { // if ( e.Errors.Where(err=>err.Number == errorNumber).FirstOrDefault() == null) // Assert.Fail("Error {0} not thrown.", errorNumber); // } //} }
public void Complex() { var compiler = new FormulaCompiler() .WithMath().WithInfo(FormulaCompilerBuildInfoLevels.None); TestTime.Measure(1000, () => compiler.Compile <int>("2+2*2 + max(4,5)")); }
public void Test4() { var compiler = new FormulaCompiler(); var f = compiler.Compile <int>(@"55 + 5;"); f().ShouldEqual(60); }
public void Test5() { var compiler = new FormulaCompiler(); var f = compiler.Compile <int>(@"5 {5}"); f().ShouldEqual(5); }
public void Test() { var compiler = new FormulaCompiler(); var f = compiler.Compile <int>(@"5 + 5 {}"); f().ShouldEqual(10); }
public void ProcessorCount() { var compiler = new FormulaCompiler() .WithInfo(FormulaCompilerBuildInfoLevels.None) .WithSystem(); TestTime.Measure(1000, () => compiler.Compile <int>("Environment.ProcessorCount")); }
public void FlatTypeProviderTest() { var compiler = new FormulaCompiler() .WithFlatType(typeof(Math)); var f = compiler.Compile <int>("max(4,2)"); f().ShouldEqual(4); }
public void Multiline() { var compiler = new FormulaCompiler(); var f = compiler.Compile <int>(@"5 + 4 + 2 -2"); f().ShouldEqual(9); }
public void Simple() { var compiler = new FormulaCompiler().WithSystem(); var f = compiler.Compile <Func <string, int, int> >("(string x, int y) => 5 + x.Length + y"); f.ShouldNotBeNull(); f()("abc", 2).ShouldEqual(10); }
private void Button_Click(object sender, RoutedEventArgs e) { _func = null; var compiler = new FormulaCompiler(); if (Custom.IsChecked ?? false) { compiler. WithMethod("rand", () => new Random(Environment.TickCount).Next()) .WithMethod("rand", (int max) => new Random(Environment.TickCount).Next(max)) .WithMethod("p", (int p) => 5); } if (Math.IsChecked ?? false) { compiler.WithMath(); } if (Date.IsChecked ?? false) { compiler.WithDate(); } if (All.IsChecked ?? false) { var a = new AssemblyCallProvider() .AddAssembly("System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089") .AddAssembly("mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089") .AddAssembly("System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089") .Using(Using.Text.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries)) .WithExtensionMethods(); compiler.With(a); } if (SampleEntity.IsChecked ?? false) { compiler.WithType <SampleEntity>(); var f = compiler.NewLambda() .WithParam <SampleEntity>("s") .Returns <object>() .Compile(Formula.Text); if (f != null) { _func = () => f(new SampleEntity()); } } else { _func = compiler.Compile <object>(Formula.Text); } Status.Text = compiler.BuildInfo.Message; Button_Click_1(null, null); }
public void LineComment() { var f = _compiler.Compile <int>(@"5 // abc"); f().ShouldEqual(5); }
public void AddTest() { _compiler.Compile <int>("5+4")().ShouldEqual(9); }
public void RootCallMethodTest() { var f = _compiler.Compile <int>("abs(-5)"); f().ShouldEqual(Math.Abs(-5)); }
public void IntLiteralTest() { var f = _compiler.Compile <int>("555"); f().ShouldEqual(555); }