private static DoubleArray readDoubleArray( ByteBuffer bb, int offset ) { final int len = bb.getInt( offset ); offset += Integer.BYTES; final double[] array = new double[len]; for ( int i = 0; i < len; i++ ) { array[i] = bb.getDouble( offset ); offset += Long.BYTES; } return doubleArray( array ); }
@Override public ArrayValue createArray( int length, Bits bits, int requiredBits ) { if ( length == 0 ) { return Values.EMPTY_DOUBLE_ARRAY; } final double[] result = new double[length]; for ( int i = 0; i < length; i++ ) { result[i] = Double.longBitsToDouble( bits.getLong( requiredBits ) ); } return Values.doubleArray( result ); }
/** * @see RandomValues */ public DoubleArray nextDoubleArray() { double[] array = nextDoubleArrayRaw( minArray(), maxArray() ); return Values.doubleArray( array ); }
return Values.doubleArray( doubleArray ); default: throw new IllegalArgumentException( "Unknown number type " + numberType );
return Values.doubleArray( array );
@Test void shouldProvideDirectDoubleArrayAsPublic() { double[] inStore = {1}; Value value = Values.doubleArray( inStore ); Object asObject = value.asObjectCopy(); assertNotNull( asObject, "should return double[]" ); double[] arr = (double[]) asObject; assertTrue( Arrays.equals( inStore, arr ), "should have same values" ); arr[0] = -1; assertFalse( Arrays.equals( inStore, arr ), "should not modify inStore array" ); assertTrue( Arrays.equals( inStore, (double[])value.asObjectCopy() ), "should still generate inStore array" ); }
return doubleArray( ((double[]) value).clone() );
return doubleArray( copy( value, new double[value.length] ) );
assertEqualValues( list(), byteArray( new byte[]{} ) ); assertEqualValues( list(), charArray( new char[]{} ) ); assertEqualValues( list(), doubleArray( new double[]{} ) ); assertEqualValues( list(), floatArray( new float[]{} ) ); assertEqualValues( list(), intArray( new int[]{} ) ); assertEqualValues( list( 'h' ), charArray( new char[]{'h'} ) ); assertEqualValues( list( 'h', 'i' ), charArray( new char[]{'h', 'i'} ) ); assertEqualValues( list( 1.0 ), doubleArray( new double[]{1.0} ) ); assertEqualValues( list( 1.0, 2.0 ), doubleArray( new double[]{1.0, 2.0} ) ); assertEqualValues( list( 1.5f ), floatArray( new float[]{1.5f} ) ); assertEqualValues( list( 1.5f, -5f ), floatArray( new float[]{1.5f, -5f} ) );
floatArray( new float[] {Float.NEGATIVE_INFINITY, Float.MIN_VALUE} ), doubleValue( Double.MIN_NORMAL ), doubleArray( new double[] {Double.POSITIVE_INFINITY, Double.MAX_VALUE} ), datetime( 2018, 1, 16, 10, 36, 43, 123456788, ZoneId.of( "Europe/Stockholm" ) ), localDateTime( 2018, 1, 16, 10, 36, 43, 123456788 ),
assertEqual( longArray( new long[]{} ), longArray( new long[]{} ) ); assertEqual( floatArray( new float[]{} ), floatArray( new float[]{} ) ); assertEqual( doubleArray( new double[]{} ), doubleArray( new double[]{} ) ); assertEqual( charArray( new char[]{} ), charArray( new char[]{} ) ); assertEqual( stringArray(), stringArray() ); assertEqual( longArray( new long[]{1} ), longArray( new long[]{1} ) ); assertEqual( floatArray( new float[]{1.0f} ), floatArray( new float[]{1.0f} ) ); assertEqual( doubleArray( new double[]{1.0} ), doubleArray( new double[]{1.0} ) ); assertEqual( charArray( new char[]{'x'} ), charArray( new char[]{'x'} ) ); assertEqual( stringArray( "hi" ), stringArray( "hi" ) );
assertNotEqual( list( true, true ), shortArray( new short[]{(short) 0, (short) 0} ) ); assertNotEqual( list( true, true ), floatArray( new float[]{0.0f, 0.0f} ) ); assertNotEqual( list( true, true ), doubleArray( new double[]{0.0, 0.0} ) ); assertNotEqual( list( true, true ), charArray( new char[]{'T', 'T'} ) ); assertNotEqual( list( true, true ), stringArray( "True", "True" ) ); assertNotEqual( list( 'h' ), charArray( new char[]{'h', 'i'} ) ); assertNotEqual( list( 'h', 'o' ), charArray( new char[]{'h', 'i'} ) ); assertNotEqual( list( 9.0, 2.0 ), doubleArray( new double[]{1.0, 2.0} ) ); assertNotEqual( list( 1.0 ), doubleArray( new double[]{1.0, 2.0} ) ); assertNotEqual( list( 1.5f ), floatArray( new float[]{1.5f, -5f} ) ); assertNotEqual( list( 1.5f, 5f ), floatArray( new float[]{1.5f, -5f} ) );
private static DoubleArray readDoubleArray( ByteBuffer bb, int offset ) { final int len = bb.getInt( offset ); offset += Integer.BYTES; final double[] array = new double[len]; for ( int i = 0; i < len; i++ ) { array[i] = bb.getDouble( offset ); offset += Long.BYTES; } return doubleArray( array ); }
@Override public ArrayValue createArray( int length, Bits bits, int requiredBits ) { if ( length == 0 ) { return Values.EMPTY_DOUBLE_ARRAY; } final double[] result = new double[length]; for ( int i = 0; i < length; i++ ) { result[i] = Double.longBitsToDouble( bits.getLong( requiredBits ) ); } return Values.doubleArray( result ); }
/** * @see RandomValues */ public DoubleArray nextDoubleArray() { double[] array = nextDoubleArrayRaw( minArray(), maxArray() ); return Values.doubleArray( array ); }
return Values.doubleArray( doubleArray ); default: throw new IllegalArgumentException( "Unknown number type " + numberType );
return Values.doubleArray( array );
return doubleArray( ((double[]) value).clone() );
return doubleArray( copy( value, new double[value.length] ) );