/** * Converts a value of a lower domain numerical type to BigDecimal. * * @param value value * @param type type * * @return converted value */ private static BigDecimal bigDecimalValue(PropertyValue value, int type) { switch (type) { case SHORT: return BigDecimal.valueOf(value.getShort()); case INT: return BigDecimal.valueOf(value.getInt()); case LONG: return BigDecimal.valueOf(value.getLong()); case FLOAT: return BigDecimal.valueOf(value.getFloat()); default: return BigDecimal.valueOf(value.getDouble()); } }
/** * Converts a value of a lower domain numerical type to Double. * * @param value value * @param type type * * @return converted value */ private static double doubleValue(PropertyValue value, int type) { switch (type) { case SHORT: return value.getShort(); case INT: return value.getInt(); case LONG: return value.getLong(); default: return value.getFloat(); } }
/** * Returns the wrapped value as {@code BigDecimal}. * * @return {@code BigDecimal} value * @see BigDecimal */ public BigDecimal getBigDecimal() { BigDecimal decimal; if (isBigDecimal()) { decimal = Bytes.toBigDecimal(rawBytes, OFFSET, rawBytes.length - OFFSET); } else if (isFloat()) { decimal = BigDecimal.valueOf(getFloat()); } else if (isDouble()) { decimal = BigDecimal.valueOf(getDouble()); } else if (isShort()) { decimal = BigDecimal.valueOf(getShort()); } else if (isInt()) { decimal = BigDecimal.valueOf(getInt()); } else if (isLong()) { decimal = BigDecimal.valueOf(getLong()); } else if (isString()) { decimal = new BigDecimal(getString()); } else { throw new ClassCastException( "Cannot covert " + this.getType().getSimpleName() + " to " + BigDecimal.class.getSimpleName()); } return decimal; } /**
@Test public void testGetFloat() throws Exception { PropertyValue p = PropertyValue.create(FLOAT_VAL_4); assertEquals(FLOAT_VAL_4, p.getFloat(), 0); }
@Test public void testSetFloat() throws Exception { PropertyValue p = new PropertyValue(); p.setFloat(FLOAT_VAL_4); assertEquals(FLOAT_VAL_4, p.getFloat(), 0); }
@Test public void testAddReturningFloat() { PropertyValue p; // float p = add(create(FLOAT_VAL_4), create(FLOAT_VAL_4)); assertTrue(p.isFloat()); assertEquals(FLOAT_VAL_4 + FLOAT_VAL_4, p.getFloat(), 0); // long p = add(create(FLOAT_VAL_4), create(LONG_VAL_3)); assertTrue(p.isFloat()); assertEquals(FLOAT_VAL_4 + LONG_VAL_3, p.getFloat(), 0); p = add(create(LONG_VAL_3), create(FLOAT_VAL_4)); assertTrue(p.isFloat()); assertEquals(LONG_VAL_3 + FLOAT_VAL_4, p.getFloat(), 0); // int p = add(create(FLOAT_VAL_4), create(INT_VAL_2)); assertTrue(p.isFloat()); assertEquals(FLOAT_VAL_4 + INT_VAL_2, p.getFloat(), 0); p = add(create(INT_VAL_2), create(FLOAT_VAL_4)); assertTrue(p.isFloat()); assertEquals(INT_VAL_2 + FLOAT_VAL_4, p.getFloat(), 0); // short p = add(create(FLOAT_VAL_4), create(SHORT_VAL_e)); assertTrue(p.isFloat()); assertEquals(FLOAT_VAL_4 + SHORT_VAL_e, p.getFloat(), 0); p = add(create(SHORT_VAL_e), create(FLOAT_VAL_4)); assertTrue(p.isFloat()); assertEquals(SHORT_VAL_e + FLOAT_VAL_4, p.getFloat(), 0); }
@Test public void testMultiplyReturningFloat() { PropertyValue p; // float p = multiply(create(FLOAT_VAL_4), create(FLOAT_VAL_4)); assertTrue(p.isFloat()); assertEquals(FLOAT_VAL_4 * FLOAT_VAL_4, p.getFloat(), 0); // long p = multiply(create(FLOAT_VAL_4), create(LONG_VAL_3)); assertTrue(p.isFloat()); assertEquals(FLOAT_VAL_4 * LONG_VAL_3, p.getFloat(), 0); p = multiply(create(LONG_VAL_3), create(FLOAT_VAL_4)); assertTrue(p.isFloat()); assertEquals(LONG_VAL_3 * FLOAT_VAL_4, p.getFloat(), 0); // int p = multiply(create(FLOAT_VAL_4), create(INT_VAL_2)); assertTrue(p.isFloat()); assertEquals(FLOAT_VAL_4 * INT_VAL_2, p.getFloat(), 0); p = multiply(create(INT_VAL_2), create(FLOAT_VAL_4)); assertTrue(p.isFloat()); assertEquals(INT_VAL_2 * FLOAT_VAL_4, p.getFloat(), 0); // short p = multiply(create(FLOAT_VAL_4), create(SHORT_VAL_e)); assertTrue(p.isFloat()); assertEquals(FLOAT_VAL_4 * SHORT_VAL_e, p.getFloat(), 0); p = multiply(create(SHORT_VAL_e), create(FLOAT_VAL_4)); assertTrue(p.isFloat()); assertEquals(SHORT_VAL_e * FLOAT_VAL_4, p.getFloat(), 0); }
@Override public Edge<GradoopId, Double> map(org.gradoop.common.model.impl.pojo.Edge epgmEdge) throws Exception { reuseEdge.setSource(epgmEdge.getSourceId()); reuseEdge.setTarget(epgmEdge.getTargetId()); //cast incoming numeric value to double PropertyValue value = epgmEdge.getPropertyValue(propertyKey); if (value.isDouble()) { reuseEdge.setValue(value.getDouble()); } else if (value.isFloat()) { reuseEdge.setValue((double) value.getFloat()); } else if (value.isInt()) { reuseEdge.setValue((double) value.getInt()); } else if (value.isLong()) { reuseEdge.setValue((double) value.getLong()); } return reuseEdge; } }
@Override public Edge<GradoopId, Double> map(org.gradoop.common.model.impl.pojo.Edge epgmEdge) throws Exception { reuseEdge.setSource(epgmEdge.getSourceId()); reuseEdge.setTarget(epgmEdge.getTargetId()); //cast incoming numeric value to double PropertyValue value = epgmEdge.getPropertyValue(propertyKey); if (value.isDouble()) { reuseEdge.setValue(value.getDouble()); } else if (value.isFloat()) { reuseEdge.setValue((double) value.getFloat()); } else if (value.isInt()) { reuseEdge.setValue((double) value.getInt()); } else if (value.isLong()) { reuseEdge.setValue((double) value.getLong()); } return reuseEdge; } }
/** * Returns the wrapped value as object. * * @return value or {@code null} if the value is empty */ public Object getObject() { return isBoolean() ? getBoolean() : isShort() ? getShort() : isInt() ? getInt() : isLong() ? getLong() : isFloat() ? getFloat() : isDouble() ? getDouble() : isString() ? getString() : isBigDecimal() ? getBigDecimal() : isGradoopId() ? getGradoopId() : isMap() ? getMap() : isList() ? getList() : isDate() ? getDate() : isTime() ? getTime() : isDateTime() ? getDateTime() : isSet() ? getSet() : null; } /**
3.1f, graphHead.getPropertyValue( maxVertexProperty.getAggregatePropertyKey()).getFloat(), 0.00001f); assertTrue("edge maximum not set", graphHead.hasProperty(maxVertexProperty.getAggregatePropertyKey())); 3.1f, graphHead.getPropertyValue( maxProperty.getAggregatePropertyKey()).getFloat(), 0.00001f);
assertEquals(1.5f, vertexAggregate.getFloat(), 0.00001); assertEquals( new BigDecimal("4.0"), .round(new MathContext(2, RoundingMode.HALF_UP))); } else if (graphHead.getId().equals(g1Id)) { assertEquals(0.5f, vertexAggregate.getFloat(), 0.00001); assertEquals(2L, edgeAggregate.getLong()); assertEquals(2.5f, elementAggregate.getFloat(), 0.00001); } else if (graphHead.getId().equals(g2Id)) { assertEquals(PropertyValue.NULL_VALUE, vertexAggregate);
assertEquals(0.9f, vertexAggregate.getFloat(), 0.00001); assertEquals(2.9f, elementAggregate.getFloat(), 0.00001); } else if (graphHead.getId().equals(g1Id)) { assertEquals(2, edgeAggregate.getLong()); assertEquals(0.8f, vertexAggregate.getFloat(), 0.00001); assertEquals(2.8f, elementAggregate.getFloat(), 0.00001); } else if (graphHead.getId().equals(g2Id)) { assertEquals(PropertyValue.NULL_VALUE, edgeAggregate);
assertEquals(0.1f, vertexAggregate.getFloat(), 0.00001); assertEquals(0.1f, elementAggregate.getFloat(), 0.00001); } else if (graphHead.getId().equals(g1Id)) { assertEquals(2, edgeAggregate.getLong()); assertEquals(0.3f, vertexAggregate.getFloat(), 0.00001); assertEquals(0.3f, elementAggregate.getFloat(), 0.00001); } else if (graphHead.getId().equals(g2Id)) { assertEquals(PropertyValue.NULL_VALUE, edgeAggregate);
assertEquals(0.5f, vertexAggregate.getFloat(), 0.00001); assertEquals(2L, elementAggregate.getLong()); } else if (graphHead.getId().equals(g1Id)) { assertEquals(2L, edgeAggregate.getLong()); assertEquals(0.5f, vertexAggregate.getFloat(), 0.00001); assertEquals(2L, elementAggregate.getLong()); } else if (graphHead.getId().equals(g2Id)) {
assertEquals(FLOAT_VAL_4, p.getFloat(), 0);