Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/03/11 14:14:36 (14 years ago)
Author:
gkronber
Message:

Improved test cases for data analysis plugins. #1336

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Problems.DataAnalysis/3.3/Tests/SimpleArithmeticExpressionInterpreterTest.cs

    r4477 r5412  
    4040    private const int Rows = 1000;
    4141    private const int Columns = 50;
    42     private static SymbolicExpressionTree[] randomTrees;
    43     private static Dataset dataset;
    44     private static MersenneTwister twister;
    4542    private TestContext testContextInstance;
    4643
     
    5855    }
    5956
    60     [ClassInitialize()]
    61     public static void CreateRandomTrees(TestContext testContext) {
    62       twister = new MersenneTwister();
    63       dataset = Util.CreateRandomDataset(twister, Rows, Columns);
     57    [TestMethod]
     58    public void FullGrammarSimpleArithmeticExpressionInterpreterPerformanceTest() {
     59      var twister = new MersenneTwister();
     60      var dataset = Util.CreateRandomDataset(twister, Rows, Columns);
    6461      var grammar = new GlobalSymbolicExpressionGrammar(new FullFunctionalExpressionGrammar());
    6562      grammar.MaxFunctionArguments = 0;
     
    6764      grammar.MinFunctionArguments = 0;
    6865      grammar.MinFunctionDefinitions = 0;
    69       randomTrees = Util.CreateRandomTrees(twister, dataset, grammar, N, 1, 100, 0, 0);
    70     }
    71 
    72     [TestMethod]
    73     public void SimpleArithmeticExpressionInterpreterPerformanceTest() {
     66      var randomTrees = Util.CreateRandomTrees(twister, dataset, grammar, N, 1, 100, 0, 0);
    7467      double[] estimation = new double[Rows];
    7568      foreach (SymbolicExpressionTree tree in randomTrees) {
     
    7770      }
    7871      SimpleArithmeticExpressionInterpreter interpreter = new SimpleArithmeticExpressionInterpreter();
    79       Util.EvaluateTrees(randomTrees, interpreter, dataset, 10);
     72      double nodesPerSec = Util.CalculateEvaluatedNodesPerSec(randomTrees, interpreter, dataset, 3);
     73      Assert.IsTrue(nodesPerSec > 15.0e6); // evaluated nodes per seconds must be larger than 15mNodes/sec
     74    }
     75
     76    [TestMethod]
     77    public void ArithmeticGrammarSimpleArithmeticExpressionInterpreterPerformanceTest() {
     78      var twister = new MersenneTwister();
     79      var dataset = Util.CreateRandomDataset(twister, Rows, Columns);
     80      var grammar = new GlobalSymbolicExpressionGrammar(new ArithmeticExpressionGrammar());
     81      grammar.MaxFunctionArguments = 0;
     82      grammar.MaxFunctionDefinitions = 0;
     83      grammar.MinFunctionArguments = 0;
     84      grammar.MinFunctionDefinitions = 0;
     85      var randomTrees = Util.CreateRandomTrees(twister, dataset, grammar, N, 1, 100, 0, 0);
     86      double[] estimation = new double[Rows];
     87      foreach (SymbolicExpressionTree tree in randomTrees) {
     88        Util.InitTree(tree, twister, new List<string>(dataset.VariableNames));
     89      }
     90      SimpleArithmeticExpressionInterpreter interpreter = new SimpleArithmeticExpressionInterpreter();
     91      double nodesPerSec = Util.CalculateEvaluatedNodesPerSec(randomTrees, interpreter, dataset, 3);
     92      Assert.IsTrue(nodesPerSec > 15.0e6); // evaluated nodes per seconds must be larger than 15mNodes/sec
    8093    }
    8194
Note: See TracChangeset for help on using the changeset viewer.