@Test public void testRemainderBigNumbers() throws Exception { BigDecimal field1 = new BigDecimal( "123456789012345678901.1234567890123456789" ); BigDecimal field2 = new BigDecimal( "1.0" ); BigDecimal field3 = new BigDecimal( "2.0" ); BigDecimal expResult1 = new BigDecimal( "0.1234567890123456789" ); BigDecimal expResult2 = new BigDecimal( "1.1234567890123456789" ); assertEquals( expResult1, ValueDataUtil.remainder( new ValueMetaBigNumber( ), field1, new ValueMetaBigNumber( ), field2 ) ); assertEquals( expResult2, ValueDataUtil.remainder( new ValueMetaBigNumber( ), field1, new ValueMetaBigNumber( ), field3 ) ); }
@Override public Object getNativeDataType( Object object ) throws KettleValueException { return getBigNumber( object ); }
@Override public String getFormatMask() { return getBigNumberFormatMask(); }
@Test public void assertNumeric_BigNumber() throws Exception { assertNumericForNumberMeta( new ValueMetaBigNumber( "big-number" ), BigDecimal.ONE ); }
valueMeta = new ValueMetaInteger(); } else if ( type.equals( "BigDecimal" ) || type.equals( "BigNumber" ) ) { valueMeta = new ValueMetaBigNumber(); } else if ( type.equals( "Double" ) || type.equals( "Number" ) ) { valueMeta = new ValueMetaNumber();
valueData = Double.valueOf( ( (Float) valueData ).doubleValue() ); } else if ( valueData instanceof BigDecimal ) { valueMeta = new ValueMetaBigNumber( valueName ); } else { throw new KettleDatabaseException( BaseMessages.getString( PKG, "MondrianInputErrorUnhandledType", valueData.getClass().toString() ) );
public ValueMetaAndData( String valueName, Object valueData ) throws KettleValueException { this.valueData = valueData; if ( valueData instanceof String ) { this.valueMeta = new ValueMetaString( valueName ); } else if ( valueData instanceof Double ) { this.valueMeta = new ValueMetaNumber( valueName ); } else if ( valueData instanceof Long ) { this.valueMeta = new ValueMetaInteger( valueName ); } else if ( valueData instanceof Date ) { this.valueMeta = new ValueMetaDate( valueName, ValueMetaInterface.TYPE_DATE ); } else if ( valueData instanceof BigDecimal ) { this.valueMeta = new ValueMetaBigNumber( valueName ); } else if ( valueData instanceof Boolean ) { this.valueMeta = new ValueMetaBoolean( valueName ); } else if ( valueData instanceof byte[] ) { this.valueMeta = new ValueMetaBinary( valueName ); } else { this.valueMeta = new ValueMetaSerializable( valueName ); } }
return new ValueMetaBigNumber(); } else if ( object instanceof Double ) { return new ValueMetaNumber();
@Test public void getGetSignature_BigNumber() { ValueMetaBigNumber v = new ValueMetaBigNumber( "Number" ); String accessor = FieldHelper.getAccessor( true, "Number" ); assertEquals( "BigDecimal Number = get(Fields.In, \"Number\").getBigDecimal(r);", FieldHelper.getGetSignature( accessor, v ) ); assertNotNull( getMethod( FieldHelper.class, "getBigDecimal", Object[].class ) ); }
@Test public void bigNumberAreNotTrimmedToInt() throws Exception { ScriptValuesMod step = StepMockUtil.getStep( ScriptValuesMod.class, ScriptValuesMetaMod.class, "test" ); RowMeta input = new RowMeta(); input.addValueMeta( new ValueMetaBigNumber( "value_int" ) ); input.addValueMeta( new ValueMetaBigNumber( "value_double" ) ); step.setInputRowMeta( input ); step = spy( step ); doReturn( new Object[] { BigDecimal.ONE, BigDecimal.ONE } ).when( step ).getRow(); ScriptValuesMetaMod meta = new ScriptValuesMetaMod(); meta.setCompatible( false ); meta.allocate( 2 ); meta.setFieldname( new String[] { "value_int", "value_double" } ); meta.setType( new int[] { ValueMetaInterface.TYPE_BIGNUMBER, ValueMetaInterface.TYPE_BIGNUMBER } ); meta.setReplace( new boolean[] { true, true } ); meta.setJSScripts( new ScriptValuesScript[] { new ScriptValuesScript( ScriptValuesScript.TRANSFORM_SCRIPT, "script", "value_int = 10.00;\nvalue_double = 10.50" ) } ); ScriptValuesModData data = new ScriptValuesModData(); step.init( meta, data ); Object[] expectedRow = { BigDecimal.TEN, new BigDecimal( "10.5" ) }; Object[] row = TransTestingUtil.execute( step, meta, data, 1, false ).get( 0 ); TransTestingUtil.assertResult( expectedRow, row ); }
/** * Create meta information for rows that are passed to Excel Writer step * * @return * @throws KettleException */ private RowMetaInterface createRowMeta() throws KettleException { RowMetaInterface rm = new RowMeta(); try { ValueMetaInterface[] valuesMeta = { new ValueMetaInteger( "col 1" ), new ValueMetaNumber( "col 2" ), new ValueMetaBigNumber( "col 3" ), new ValueMetaNumber( "col 4" ) }; for ( int i = 0; i < valuesMeta.length; i++ ) { rm.addValueMeta( valuesMeta[i] ); } } catch ( Exception ex ) { return null; } return rm; } }
val = new ValueMetaBigNumber( name );
inputRowMeta.addValueMeta( new ValueMetaBigNumber( SELECTED_FIELD ) ); step2.setInputRowMeta( inputRowMeta ); stepMeta = new SelectValuesMeta(); inputRowMeta.addValueMeta( new ValueMetaBigNumber( SELECTED_FIELD ) ); step2.setInputRowMeta( inputRowMeta ); stepMeta = new SelectValuesMeta(); inputRowMeta.addValueMeta( new ValueMetaBigNumber( SELECTED_FIELD ) ); step2.setInputRowMeta( inputRowMeta ); stepMeta = new SelectValuesMeta(); inputRowMeta.addValueMeta( new ValueMetaBigNumber( SELECTED_FIELD ) ); step2.setInputRowMeta( inputRowMeta ); stepMeta = new SelectValuesMeta();
switch ( valueDataType ) { case ValueMetaInterface.TYPE_BIGNUMBER: valueMeta = new ValueMetaBigNumber( fieldValue ); break; case ValueMetaInterface.TYPE_NUMBER:
switch ( types[i] ) { case ValueMetaInterface.TYPE_BIGNUMBER: inputRowMeta.addValueMeta( new ValueMetaBigNumber("f" + i ) ); break; case ValueMetaInterface.TYPE_NUMBER:
private RowMetaInterface getInputRowMeta() { RowMetaInterface rm = new RowMeta(); rm.addValueMeta( new ValueMetaString( "myGroupField2" ) ); rm.addValueMeta( new ValueMetaString( "myGroupField1" ) ); rm.addValueMeta( new ValueMetaString( "myString" ) ); rm.addValueMeta( new ValueMetaInteger( "myInteger" ) ); rm.addValueMeta( new ValueMetaNumber( "myNumber" ) ); rm.addValueMeta( new ValueMetaBigNumber( "myBigNumber" ) ); rm.addValueMeta( new ValueMetaBinary( "myBinary" ) ); rm.addValueMeta( new ValueMetaBoolean( "myBoolean" ) ); rm.addValueMeta( new ValueMetaDate( "myDate" ) ); rm.addValueMeta( new ValueMetaTimestamp( "myTimestamp" ) ); rm.addValueMeta( new ValueMetaInternetAddress( "myInternetAddress" ) ); return rm; } @Test
private ValueMetaInterface getValueMetaInterface( String fieldName, int fieldType ) { switch ( fieldType ) { case ValueMetaInterface.TYPE_INET: return new ValueMetaInternetAddress( fieldName ); case ValueMetaInterface.TYPE_STRING: return new ValueMetaString( fieldName ); case ValueMetaInterface.TYPE_INTEGER: return new ValueMetaInteger( fieldName ); case ValueMetaInterface.TYPE_NUMBER: return new ValueMetaNumber( fieldName ); case ValueMetaInterface.TYPE_BIGNUMBER: return new ValueMetaBigNumber( fieldName ); case ValueMetaInterface.TYPE_TIMESTAMP: return new ValueMetaTimestamp( fieldName ); case ValueMetaInterface.TYPE_DATE: return new ValueMetaDate( fieldName ); case ValueMetaInterface.TYPE_BOOLEAN: return new ValueMetaBoolean( fieldName ); case ValueMetaInterface.TYPE_BINARY: return new ValueMetaBinary( fieldName ); } return null; } }
break; case ValueMetaInterface.TYPE_BIGNUMBER: fields.addValueMeta( new ValueMetaBigNumber( pentahoFieldName ) ); break; case ValueMetaInterface.TYPE_BOOLEAN:
keyValue = new BigDecimal( 1 ); assertArrayEquals( new byte[] { 1 }, HBaseValueMeta.encodeColumnValue( keyValue, new ValueMetaBigNumber(), hbMeta, BYTES_UTIL ) ); hbMeta.setType( 7 ); keyValue = "";