String dictNum = dict.getValueFromId(i); assertEquals(sorted.get(i), new BigDecimal(dictNum)); assertEquals(sorted.get(i), new BigDecimal(new String(dict.getValueByteFromId(i), StandardCharsets.UTF_8))); dict.getIdFromValue(randStr, -1); fail(); } catch (IllegalArgumentException ex) { assertEquals(expectedLowerId, dict.getIdFromValue(randStr, -1)); dict.getIdFromValue(randStr, 1); fail(); } catch (IllegalArgumentException ex) { assertEquals(expectedHigherId, dict.getIdFromValue(randStr, 1));
public NumberDictionary<T> build(int baseId) { byte[] trieBytes = buildTrieBytes(baseId); NumberDictionary<T> r = new NumberDictionary<T>(trieBytes); return r; }
String dictNum = dict.getValueFromId(i); System.out.println(sorted.get(i) + "\t" + dictNum); String dictNum = dict.getValueFromId(i); assertEquals(sorted.get(i), new BigDecimal(dictNum)); dict.getIdFromValue(randStr, -1); fail(); } catch (IllegalArgumentException ex) { assertEquals(expectedLowerId, dict.getIdFromValue(randStr, -1)); dict.getIdFromValue(randStr, 1); fail(); } catch (IllegalArgumentException ex) { assertEquals(expectedHigherId, dict.getIdFromValue(randStr, 1));
@Test public void testMinMax() { NumberDictionaryBuilder builder = new NumberDictionaryBuilder(); builder.addValue("" + Long.MAX_VALUE); builder.addValue("" + Long.MIN_VALUE); NumberDictionary<String> dict = builder.build(0); int minId = dict.getIdFromValue("" + Long.MIN_VALUE); int maxId = dict.getIdFromValue("" + Long.MAX_VALUE); assertEquals(0, minId); assertEquals(1, maxId); }
@Override protected int getIdFromValueBytesImpl(byte[] value, int offset, int len, int roundingFlag) { NumberBytesCodec codec = getCodec(); codec.encodeNumber(value, offset, len); return super.getIdFromValueBytesImpl(codec.buf, codec.bufOffset, codec.bufLen, roundingFlag); }
@Ignore @SuppressWarnings("unchecked") @Test public void testEmptyInput() throws IOException { String[] ints = new String[] { "", "0", "5", "100", "13" }; // check "" is treated as NULL, not a code of dictionary Dictionary<?> dict = DictionaryGenerator.buildDictionary(DataType.getType("integer"), new IterableDictionaryValueEnumerator(ints)); assertEquals(4, dict.getSize()); final int id = ((NumberDictionary<String>) dict).getIdFromValue(""); assertEquals(id, dict.nullId()); }
@Override protected int getValueBytesFromIdImpl(int id, byte[] returnValue, int offset) { NumberBytesCodec codec = getCodec(); codec.bufOffset = 0; codec.bufLen = super.getValueBytesFromIdImpl(id, codec.buf, 0); return codec.decodeNumber(returnValue, offset); }
@Override protected int getValueBytesFromIdImpl(int id, byte[] returnValue, int offset) { NumberBytesCodec codec = getCodec(); codec.bufOffset = 0; codec.bufLen = super.getValueBytesFromIdImpl(id, codec.buf, 0); return codec.decodeNumber(returnValue, offset); }
public NumberDictionary<T> build(int baseId) { byte[] trieBytes = buildTrieBytes(baseId); NumberDictionary<T> r = new NumberDictionary<T>(trieBytes); return r; }
@Override protected int getIdFromValueBytesImpl(byte[] value, int offset, int len, int roundingFlag) { NumberBytesCodec codec = getCodec(); codec.encodeNumber(value, offset, len); return super.getIdFromValueBytesImpl(codec.buf, codec.bufOffset, codec.bufLen, roundingFlag); }