1 17 18 package org.sablecc.sablecc.alphabet; 19 20 import static org.junit.Assert.assertEquals; 21 22 import java.math.BigInteger ; 23 import java.util.Collection ; 24 import java.util.LinkedList ; 25 import java.util.SortedSet ; 26 import java.util.TreeSet ; 27 28 import org.junit.Before; 29 import org.junit.Test; 30 31 public class AlphabetMergeResultTest { 32 33 private AlphabetMergeResult<Integer > resultMergeInt; 35 36 private Alphabet<Integer > oldAlphabetInt1; 37 38 private Alphabet<Integer > oldAlphabetInt2; 39 40 private AdjacencyRealm<Integer > integerAdjacencyRealm = Realms.getInteger(); 41 42 private Collection <Interval<Integer >> intervalsInt = new LinkedList <Interval<Integer >>(); 43 44 private Symbol<Integer > symbolInt; 45 46 private SortedSet <Symbol<Integer >> symbolsInt1 = new TreeSet <Symbol<Integer >>(); 47 48 private SortedSet <Symbol<Integer >> symbolsInt2 = new TreeSet <Symbol<Integer >>(); 49 50 private SortedSet <Symbol<Integer >> newSymbolsInt = new TreeSet <Symbol<Integer >>(); 51 52 private AlphabetMergeResult<BigInteger > resultMergeBig; 54 55 private Alphabet<BigInteger > oldAlphabetBig1; 56 57 private Alphabet<BigInteger > oldAlphabetBig2; 58 59 private AdjacencyRealm<BigInteger > bigIntegerAdjacencyRealm = Realms 60 .getBigInteger(); 61 62 private Collection <Interval<BigInteger >> intervalsBig = new LinkedList <Interval<BigInteger >>(); 63 64 private Symbol<BigInteger > symbolBig; 65 66 private SortedSet <Symbol<BigInteger >> symbolsBig1 = new TreeSet <Symbol<BigInteger >>(); 67 68 private SortedSet <Symbol<BigInteger >> symbolsBig2 = new TreeSet <Symbol<BigInteger >>(); 69 70 private SortedSet <Symbol<BigInteger >> newSymbolsBig = new TreeSet <Symbol<BigInteger >>(); 71 72 @Before 73 public void setUp() 74 throws Exception { 75 76 this.intervalsInt.clear(); 78 this.intervalsInt.add(new Interval<Integer >(0, 10, 79 this.integerAdjacencyRealm)); 80 this.intervalsInt.add(new Interval<Integer >(20, 30, 81 this.integerAdjacencyRealm)); 82 this.intervalsInt.add(new Interval<Integer >(40, 500, 83 this.integerAdjacencyRealm)); 84 this.symbolInt = new Symbol<Integer >(this.intervalsInt); 85 86 this.symbolsInt1.add(this.symbolInt); 87 this.oldAlphabetInt1 = new Alphabet<Integer >(this.symbolsInt1); 88 89 this.newSymbolsInt.add(new Symbol<Integer >(this.intervalsInt)); 90 91 this.intervalsInt.clear(); 92 this.intervalsInt.add(new Interval<Integer >(100, 110, 93 this.integerAdjacencyRealm)); 94 this.intervalsInt.add(new Interval<Integer >(120, 130, 95 this.integerAdjacencyRealm)); 96 this.intervalsInt.add(new Interval<Integer >(140, 150, 97 this.integerAdjacencyRealm)); 98 this.symbolInt = new Symbol<Integer >(this.intervalsInt); 99 this.symbolsInt2.add(this.symbolInt); 100 this.oldAlphabetInt2 = new Alphabet<Integer >(this.symbolsInt2); 101 102 this.newSymbolsInt.add(new Symbol<Integer >(this.intervalsInt)); 103 104 this.intervalsBig.clear(); 106 this.intervalsBig.add(new Interval<BigInteger >(BigInteger.ZERO, 107 BigInteger.TEN, this.bigIntegerAdjacencyRealm)); 108 this.intervalsBig.add(new Interval<BigInteger >(new BigInteger ("50"), 109 new BigInteger ("100"), this.bigIntegerAdjacencyRealm)); 110 this.intervalsBig.add(new Interval<BigInteger >(new BigInteger ("200"), 111 new BigInteger ("400"), this.bigIntegerAdjacencyRealm)); 112 113 this.symbolBig = new Symbol<BigInteger >(this.intervalsBig); 114 115 this.symbolsBig1.add(this.symbolBig); 116 this.oldAlphabetBig1 = new Alphabet<BigInteger >(this.symbolsBig1); 117 118 this.newSymbolsBig.add(new Symbol<BigInteger >(this.intervalsBig)); 119 120 this.intervalsBig.clear(); 121 this.intervalsBig.add(new Interval<BigInteger >(new BigInteger ("30"), 122 new BigInteger ("40"), this.bigIntegerAdjacencyRealm)); 123 this.intervalsBig.add(new Interval<BigInteger >(new BigInteger ("600"), 124 new BigInteger ("800"), this.bigIntegerAdjacencyRealm)); 125 this.intervalsBig.add(new Interval<BigInteger >(new BigInteger ("150"), 126 new BigInteger ("170"), this.bigIntegerAdjacencyRealm)); 127 128 this.symbolBig = new Symbol<BigInteger >(this.intervalsBig); 129 130 this.symbolsBig2.add(this.symbolBig); 131 this.oldAlphabetBig2 = new Alphabet<BigInteger >(this.symbolsBig2); 132 133 this.newSymbolsBig.add(new Symbol<BigInteger >(this.intervalsBig)); 134 } 135 136 @Test 137 public void testGetNewSymbols() { 138 139 this.resultMergeInt = this.oldAlphabetInt1 141 .mergeWith(this.oldAlphabetInt2); 142 143 this.newSymbolsInt = this.resultMergeInt.getNewSymbols(this.symbolInt, 144 this.oldAlphabetInt2); 145 assertEquals("The newSymbols and the old symbols should be equals.", 146 this.symbolsInt2, this.newSymbolsInt); 147 148 this.resultMergeBig = this.oldAlphabetBig1 150 .mergeWith(this.oldAlphabetBig2); 151 152 this.newSymbolsBig = this.resultMergeBig.getNewSymbols(this.symbolBig, 153 this.oldAlphabetBig2); 154 assertEquals("The newSymbols and the old symbols should be equals.", 155 this.symbolsBig2, this.newSymbolsBig); 156 } 157 158 } 159 | Popular Tags |