Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/27/18 19:28:18 (6 years ago)
Author:
bburlacu
Message:

#2886:

  • replace functionally-overlapping classes Production and SymbolString with a single class SymbolList
  • refactor methods from Grammar class as methods and properties of SymbolList
  • add parameter for the number of constant optimization iterations
  • refactor code
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2886_SymRegGrammarEnumeration/Test/TreeHashingTest.cs

    r15849 r16026  
    2727    [TestCategory("TreeHashing")]
    2828    public void SimpleEqualityAddition() {
    29       SymbolString s1 = new SymbolString(new[] { varA, varB, grammar.Addition, varC, grammar.Addition });
    30       SymbolString s2 = new SymbolString(new[] { varA, varB, grammar.Addition, varC, grammar.Addition });
     29      SymbolList s1 = new SymbolList(new[] { varA, varB, grammar.Addition, varC, grammar.Addition });
     30      SymbolList s2 = new SymbolList(new[] { varA, varB, grammar.Addition, varC, grammar.Addition });
    3131
    3232      int hash1 = grammar.Hasher.CalcHashCode(s1);
     
    3939    [TestCategory("TreeHashing")]
    4040    public void SimpleInequalityAddition() {
    41       SymbolString s1 = new SymbolString(new[] { varA, varB, grammar.Addition, varC, grammar.Addition });
    42       SymbolString s2 = new SymbolString(new[] { varB, varB, grammar.Addition, varB, grammar.Addition });
     41      SymbolList s1 = new SymbolList(new[] { varA, varB, grammar.Addition, varC, grammar.Addition });
     42      SymbolList s2 = new SymbolList(new[] { varB, varB, grammar.Addition, varB, grammar.Addition });
    4343
    4444      int hash1 = grammar.Hasher.CalcHashCode(s1);
     
    5151    [TestCategory("TreeHashing")]
    5252    public void CommutativityAddition() {
    53       SymbolString s1 = new SymbolString(new[] { varA, varB, grammar.Addition });
    54       SymbolString s2 = new SymbolString(new[] { varB, varA, grammar.Addition });
     53      SymbolList s1 = new SymbolList(new[] { varA, varB, grammar.Addition });
     54      SymbolList s2 = new SymbolList(new[] { varB, varA, grammar.Addition });
    5555
    5656      int hash1 = grammar.Hasher.CalcHashCode(s1);
     
    6363    [TestCategory("TreeHashing")]
    6464    public void AssociativityAddition() {
    65       SymbolString s1 = new SymbolString(new[] { varA, varB, grammar.Addition, varA, grammar.Addition });
    66       SymbolString s2 = new SymbolString(new[] { varA, varB, varA, grammar.Addition, grammar.Addition });
     65      SymbolList s1 = new SymbolList(new[] { varA, varB, grammar.Addition, varA, grammar.Addition });
     66      SymbolList s2 = new SymbolList(new[] { varA, varB, varA, grammar.Addition, grammar.Addition });
    6767
    6868      int hash1 = grammar.Hasher.CalcHashCode(s1);
     
    7575    [TestCategory("TreeHashing")]
    7676    public void RepeatedAddition() {
    77       SymbolString s1 = new SymbolString(new[] { varA, varA, grammar.Addition, varA, grammar.Addition });
    78       SymbolString s2 = new SymbolString(new[] { varA });
     77      SymbolList s1 = new SymbolList(new[] { varA, varA, grammar.Addition, varA, grammar.Addition });
     78      SymbolList s2 = new SymbolList(new[] { varA });
    7979
    8080      int hash1 = grammar.Hasher.CalcHashCode(s1);
     
    8787    [TestCategory("TreeHashing")]
    8888    public void ComplexInequality() {
    89       SymbolString s1 = new SymbolString(new[] { varA, varA, varA, grammar.Multiplication, grammar.Multiplication });
    90       SymbolString s2 = new SymbolString(new[] { varA, varA, varA, grammar.Multiplication, grammar.Addition });
     89      SymbolList s1 = new SymbolList(new[] { varA, varA, varA, grammar.Multiplication, grammar.Multiplication });
     90      SymbolList s2 = new SymbolList(new[] { varA, varA, varA, grammar.Multiplication, grammar.Addition });
    9191
    9292      int hash1 = grammar.Hasher.CalcHashCode(s1);
     
    9999    [TestCategory("TreeHashing")]
    100100    public void NonterminalHashing() {
    101       SymbolString s1 = new SymbolString(new Symbol[] { varA, varA, grammar.Expr, grammar.Addition, grammar.Addition });
    102       SymbolString s2 = new SymbolString(new Symbol[] { varA, grammar.Expr, grammar.Addition });
     101      SymbolList s1 = new SymbolList(new Symbol[] { varA, varA, grammar.Expr, grammar.Addition, grammar.Addition });
     102      SymbolList s2 = new SymbolList(new Symbol[] { varA, grammar.Expr, grammar.Addition });
    103103
    104104      int hash1 = grammar.Hasher.CalcHashCode(s1);
     
    112112    public void InverseFactorCancelationSimple() {
    113113      // 1/a * b * a * a
    114       SymbolString s1 = new SymbolString(new Symbol[] { varA, grammar.Inv, varB, grammar.Multiplication, varA, grammar.Multiplication, varA, grammar.Multiplication });
     114      SymbolList s1 = new SymbolList(new Symbol[] { varA, grammar.Inv, varB, grammar.Multiplication, varA, grammar.Multiplication, varA, grammar.Multiplication });
    115115      // a * b
    116       SymbolString s2 = new SymbolString(new Symbol[] { varA, varB, grammar.Multiplication });
     116      SymbolList s2 = new SymbolList(new Symbol[] { varA, varB, grammar.Multiplication });
    117117
    118118      int hash1 = grammar.Hasher.CalcHashCode(s1);
     
    125125    [TestCategory("TreeHashing")]
    126126    public void InverseFactorCancelationComplex() {
    127       SymbolString s1 = new SymbolString(new Symbol[] { varA, grammar.Sin, varA, varA, grammar.Multiplication, varA, grammar.Addition, grammar.Sin, grammar.Addition });
    128       SymbolString s2 = new SymbolString(new Symbol[] { varA, varA, varA, grammar.Multiplication, grammar.Addition, grammar.Sin, varA, grammar.Inv, varA, grammar.Sin, varA, grammar.Multiplication, grammar.Multiplication, grammar.Addition });
     127      SymbolList s1 = new SymbolList(new Symbol[] { varA, grammar.Sin, varA, varA, grammar.Multiplication, varA, grammar.Addition, grammar.Sin, grammar.Addition });
     128      SymbolList s2 = new SymbolList(new Symbol[] { varA, varA, varA, grammar.Multiplication, grammar.Addition, grammar.Sin, varA, grammar.Inv, varA, grammar.Sin, varA, grammar.Multiplication, grammar.Multiplication, grammar.Addition });
    129129
    130130      int hash1 = grammar.Hasher.CalcHashCode(s1);
     
    138138    [TestCategory("TreeHashing")]
    139139    public void SimpleConst() {
    140       SymbolString s1 = new SymbolString(new Symbol[] { c, varA, grammar.Multiplication, c, grammar.Addition});
    141       SymbolString s2 = new SymbolString(new Symbol[] { c, varA, grammar.Multiplication, c, varA, grammar.Multiplication, grammar.Addition, c, grammar.Addition });
     140      SymbolList s1 = new SymbolList(new Symbol[] { c, varA, grammar.Multiplication, c, grammar.Addition});
     141      SymbolList s2 = new SymbolList(new Symbol[] { c, varA, grammar.Multiplication, c, varA, grammar.Multiplication, grammar.Addition, c, grammar.Addition });
    142142
    143143      int hash1 = grammar.Hasher.CalcHashCode(s1);
     
    151151    [TestCategory("TreeHashing")]
    152152    public void CompoundInverseCancellationToSingleInverse() {
    153       SymbolString s1 = new SymbolString(new Symbol[] { varA, varB, grammar.Addition, grammar.Inv, grammar.Inv, grammar.Inv });
    154       SymbolString s2 = new SymbolString(new Symbol[] { varA, varB, grammar.Addition, grammar.Inv });
     153      SymbolList s1 = new SymbolList(new Symbol[] { varA, varB, grammar.Addition, grammar.Inv, grammar.Inv, grammar.Inv });
     154      SymbolList s2 = new SymbolList(new Symbol[] { varA, varB, grammar.Addition, grammar.Inv });
    155155
    156156      int hash1 = grammar.CalcHashCode(s1);
     
    163163    [TestCategory("TreeHashing")]
    164164    public void CompoundInverseCancellationToDivisor() {
    165       SymbolString s1 = new SymbolString(new Symbol[] { varA, varB, grammar.Addition, grammar.Inv, grammar.Inv });
    166       SymbolString s2 = new SymbolString(new Symbol[] { varA, varB, grammar.Addition });
     165      SymbolList s1 = new SymbolList(new Symbol[] { varA, varB, grammar.Addition, grammar.Inv, grammar.Inv });
     166      SymbolList s2 = new SymbolList(new Symbol[] { varA, varB, grammar.Addition });
    167167
    168168      int hash1 = grammar.CalcHashCode(s1);
     
    176176    public void UncancelableCompoundInverse() {
    177177      // 1 / ( 1/b + sin(a*c) )
    178       SymbolString s1 = new SymbolString(new Symbol[] { varB, grammar.Inv, varA, varC, grammar.Multiplication, grammar.Sin, grammar.Addition, grammar.Inv });
     178      SymbolList s1 = new SymbolList(new Symbol[] { varB, grammar.Inv, varA, varC, grammar.Multiplication, grammar.Sin, grammar.Addition, grammar.Inv });
    179179      // b + sin(a*c)
    180       SymbolString s2 = new SymbolString(new Symbol[] { varB, varA, varC, grammar.Multiplication, grammar.Sin, grammar.Addition });
     180      SymbolList s2 = new SymbolList(new Symbol[] { varB, varA, varC, grammar.Multiplication, grammar.Sin, grammar.Addition });
    181181
    182182      int hash1 = grammar.CalcHashCode(s1);
Note: See TracChangeset for help on using the changeset viewer.