previousId = actualId; assertEquals(value, dict.getValueFromId(actualId));
@Test public void serializeTest() { List<String> testData = new ArrayList<>(); testData.add("1"); testData.add("2"); testData.add("100"); //TrieDictionaryForestBuilder.MaxTrieTreeSize = 0; NumberDictionaryForestBuilder b = new NumberDictionaryForestBuilder(); for (String str : testData) b.addValue(str); TrieDictionaryForest<String> dict = b.build(); dict = testSerialize(dict); //dict.dump(System.out); for (String str : testData) { assertEquals(str, dict.getValueFromId(dict.getIdFromValue(str))); } }
assertEquals(entry.getKey(), dict.getValueFromId(entry.getValue()));
assertEquals(value, dict.getValueFromId(id)); assertArrayEquals(Bytes.toBytes(value), dict.getValueByteFromId(id)); for (Integer i : notExistIds) { try { dict.getValueFromId(i); fail("For not found id '" + i + "', IllegalArgumentException is expected"); } catch (IllegalArgumentException e) { assertNull(dict.getValueFromId(nullId)); assertNull(dict.getValueByteFromId(nullId));
private void testData(List<String> humanList, List<String> expectedList, SelfDefineSortableKey.TypeFlag flag) { //stimulate map-reduce job ArrayList<SelfDefineSortableKey> keyList = createKeyList(humanList, (byte) flag.ordinal()); Collections.sort(keyList); //build tree NumberDictionaryForestBuilder b = new NumberDictionaryForestBuilder(0, 0); expectedList = numberSort(expectedList); for (String value : expectedList) { b.addValue(value); } TrieDictionaryForest<String> dict = b.build(); //dict.dump(System.out); ArrayList<Integer> resultIds = new ArrayList<>(); for (int i = 0; i < keyList.size(); i++) { SelfDefineSortableKey key = keyList.get(i); String fieldValue = getFieldValue(key); resultIds.add(dict.getIdFromValue(fieldValue)); assertEquals(expectedList.get(i), dict.getValueFromId(dict.getIdFromValue(fieldValue))); } assertTrue(isIncreasedOrder(resultIds, new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return o1.compareTo(o2); } })); }
String actualValue = dict.getValueFromId(id1); try { int id = dict.getIdFromValue(query, 1); assertEquals(set.ceiling(query), dict.getValueFromId(id)); } catch (IllegalArgumentException e) { assertNull(set.ceiling(query)); try { int id = dict.getIdFromValue(query, -1); assertEquals(set.floor(query), dict.getValueFromId(id)); } catch (IllegalArgumentException e) { assertNull(set.floor(query));
try { int id = dict.getIdFromValue(query, 1); assertEquals(set.ceiling(query), dict.getValueFromId(id)); } catch (IllegalArgumentException e) { assertNull(set.ceiling(query)); try { int id = dict.getIdFromValue(query, -1); assertEquals(set.floor(query), dict.getValueFromId(id)); } catch (IllegalArgumentException e) { assertNull(set.floor(query));
assertEquals(set.ceiling(query), dict.getValueFromId(id)); } catch (IllegalArgumentException e) { assertNull(set.ceiling(query)); try { int id = dict.getIdFromValue(query, -1); assertEquals(set.floor(query), dict.getValueFromId(id)); } catch (IllegalArgumentException e) { assertNull(set.floor(query));
@Test public void serializeTest() { ArrayList<String> testData = getTestData(10); TrieDictionaryForestBuilder<String> b = newDictBuilder(testData, 10, 0); TrieDictionaryForest<String> dict = b.build(); dict = testSerialize(dict); dict.dump(System.out); for (String str : testData) { assertEquals(str, dict.getValueFromId(dict.getIdFromValue(str))); } }
@Test public void testMerge() { // mimic the logic as in MergeCuboidMapper NumberDictionaryForestBuilder b1 = new NumberDictionaryForestBuilder(); b1.addValue("0"); b1.addValue("3"); b1.addValue("23"); TrieDictionaryForest<String> dict1 = b1.build(); NumberDictionaryForestBuilder b2 = new NumberDictionaryForestBuilder(); b2.addValue("0"); b2.addValue("2"); b2.addValue("3"); b2.addValue("15"); b2.addValue("23"); TrieDictionaryForest<String> dict2 = b2.build(); assertTrue(dict1.getSizeOfId() == dict2.getSizeOfId()); assertTrue(dict1.getSizeOfValue() == dict2.getSizeOfValue()); { int newId = dict2.getIdFromValue(dict1.getValueFromId(0)); assertTrue(newId == 0); } { int newId = dict2.getIdFromValue(dict1.getValueFromId(1)); assertTrue(newId == 2); } { int newId = dict2.getIdFromValue(dict1.getValueFromId(2)); assertTrue(newId == 4); } }