litesoft
@ 947
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
// This Source Code is in the Public Domain per: http://unlicense.org package org.litesoft.codec; import junit.framework.*; public class DoubleTypedTerminatingCodecTest extends TestCase { public static TestSuite suite() { return new TestSuite( DoubleTypedTerminatingCodecTest.class ); } public DoubleTypedTerminatingCodecTest( String name ) { super( name ); } public static void main( String[] args ) { junit.textui.TestRunner.run( suite() ); } private static final TypedTerminatingCodec<Double> CODEC = DoubleTypedTerminatingCodec.INSTANCE; public void test_checkBadStrings() { try { decode( "~" ); fail( "Bad Char OK?" ); } catch ( IllegalArgumentException expected ) { // OK } String zEncoded = encode( 1d ); try { decode( zEncoded + AbstractTypedTerminatingCodec.NULL_AS_CHAR ); fail( "Extra Char OK?" ); } catch ( IllegalArgumentException expected ) { // OK } } public void test_wierds() throws Exception { checkRT( null ); checkRT( Double.NaN ); checkRT( Double.NEGATIVE_INFINITY ); checkRT( Double.POSITIVE_INFINITY ); } public void test_values() throws Exception { checkRT( Double.MIN_VALUE ); checkRT( Double.MIN_VALUE + 1 ); checkRT( Double.MIN_VALUE / 2 ); checkRT( -300.01234d ); checkRT( -65d ); checkRT( -64d ); checkRT( -63d ); checkRT( -33d ); checkRT( -32d ); checkRT( -31d ); checkRT( -17d ); checkRT( -16d ); checkRT( -15d ); checkRT( -3d ); checkRT( -1d ); checkRT( 0d ); checkRT( 1d ); checkRT( 3d ); checkRT( 15d ); checkRT( 16d ); checkRT( 17d ); checkRT( 31d ); checkRT( 32d ); checkRT( 33d ); checkRT( 63d ); checkRT( 64d ); checkRT( 65d ); checkRT( 300.01234d ); checkRT( Double.MAX_VALUE / 2 ); checkRT( Double.MAX_VALUE - 1 ); checkRT( Double.MAX_VALUE ); } private void checkRT( Double pValue ) { String encoded = encode( pValue ); Double rtValue = decode( encoded ); assertEquals( "RT (" + encoded + ") ", pValue, rtValue ); System.out.println( "RT " + pValue + ": " + encoded ); } private Double decode( String pEncoded ) { return CODEC.decode( pEncoded ); } private String encode( Double pValue ) { return CODEC.encode( pValue ); } } |