The {@link #streamTests()} returns a stream of test cases. The {@link TestCase#run()} method of each case runs that test. + * + *
N.B. The purpose of this test matrix is at least partly to describe the current behaviour, to prevent changes being made
+ * accidentally. The presence of a test case in this list is not intended as a statement that this is actually the intended behaviour.
+ */
+ private static class NumericConversionTestMatrix {
+
+ private static final String TEST_CASES_CSV = """
+ Integer,123,STRING,String,123
+ Long,123,STRING,String,123
+ Float,123.0,STRING,String,123.0
+ Double,123.0,STRING,String,123.0
+ String,123,STRING,String,123
+ String,0x7b,STRING,String,0x7b
+ String,123.0,STRING,String,123.0
+ String,1.230000e+02,STRING,String,1.230000e+02
+ Float,123.45,STRING,String,123.45
+ Double,123.45,STRING,String,123.45
+ String,123.45,STRING,String,123.45
+ String,1.234500e+02,STRING,String,1.234500e+02
+ String,0x1.edcdp6,STRING,String,0x1.edcdp6
+ Integer,16777217,STRING,String,16777217
+ Long,16777217,STRING,String,16777217
+ Double,1.6777217E7,STRING,String,1.6777217E7
+ String,16777217,STRING,String,16777217
+ String,16777217.0,STRING,String,16777217.0
+ Long,2147483648,STRING,String,2147483648
+ Double,2.147483648E9,STRING,String,2.147483648E9
+ String,2147483648,STRING,String,2147483648
+ String,2147483648.0,STRING,String,2147483648.0
+ Long,9007199254740993,STRING,String,9007199254740993
+ String,9007199254740993,STRING,String,9007199254740993
+ String,9007199254740993.0,STRING,String,9007199254740993.0
+ String,9223372036854775808,STRING,String,9223372036854775808
+ String,9223372036854775808.0,STRING,String,9223372036854775808.0
+ String,680564693277057720000000000000000000000,STRING,String,680564693277057720000000000000000000000
+ String,680564693277057720000000000000000000000.0,STRING,String,680564693277057720000000000000000000000.0
+ Integer,123,INTEGER,Integer,123
+ Long,123,INTEGER,Integer,123
+ Float,123.0,INTEGER,THROWS,
+ Double,123.0,INTEGER,THROWS,
+ String,123,INTEGER,Integer,123
+ String,0x7b,INTEGER,Integer,123
+ String,123.0,INTEGER,THROWS,
+ String,1.230000e+02,INTEGER,THROWS,
+ Float,123.45,INTEGER,THROWS,
+ Double,123.45,INTEGER,THROWS,
+ String,123.45,INTEGER,THROWS,
+ String,1.234500e+02,INTEGER,THROWS,
+ String,0x1.edcdp6,INTEGER,THROWS,
+ Integer,16777217,INTEGER,Integer,16777217
+ Long,16777217,INTEGER,Integer,16777217
+ Double,1.6777217E7,INTEGER,THROWS,
+ String,16777217,INTEGER,Integer,16777217
+ String,16777217.0,INTEGER,THROWS,
+ Long,2147483648,INTEGER,THROWS,
+ Double,2.147483648E9,INTEGER,THROWS,
+ String,2147483648,INTEGER,THROWS,
+ String,2147483648.0,INTEGER,THROWS,
+ Long,9007199254740993,INTEGER,THROWS,
+ String,9007199254740993,INTEGER,THROWS,
+ String,9007199254740993.0,INTEGER,THROWS,
+ String,9223372036854775808,INTEGER,THROWS,
+ String,9223372036854775808.0,INTEGER,THROWS,
+ String,680564693277057720000000000000000000000,INTEGER,THROWS,
+ String,680564693277057720000000000000000000000.0,INTEGER,THROWS,
+ Integer,123,LONG,Long,123
+ Long,123,LONG,Long,123
+ Float,123.0,LONG,THROWS,
+ Double,123.0,LONG,THROWS,
+ String,123,LONG,Long,123
+ String,0x7b,LONG,Long,123
+ String,123.0,LONG,THROWS,
+ String,1.230000e+02,LONG,THROWS,
+ Float,123.45,LONG,THROWS,
+ Double,123.45,LONG,THROWS,
+ String,123.45,LONG,THROWS,
+ String,1.234500e+02,LONG,THROWS,
+ String,0x1.edcdp6,LONG,THROWS,
+ Integer,16777217,LONG,Long,16777217
+ Long,16777217,LONG,Long,16777217
+ Double,1.6777217E7,LONG,THROWS,
+ String,16777217,LONG,Long,16777217
+ String,16777217.0,LONG,THROWS,
+ Long,2147483648,LONG,Long,2147483648
+ Double,2.147483648E9,LONG,THROWS,
+ String,2147483648,LONG,Long,2147483648
+ String,2147483648.0,LONG,THROWS,
+ Long,9007199254740993,LONG,Long,9007199254740993
+ String,9007199254740993,LONG,Long,9007199254740993
+ String,9007199254740993.0,LONG,THROWS,
+ String,9223372036854775808,LONG,THROWS,
+ String,9223372036854775808.0,LONG,THROWS,
+ String,680564693277057720000000000000000000000,LONG,THROWS,
+ String,680564693277057720000000000000000000000.0,LONG,THROWS,
+ Integer,123,DOUBLE,Double,123.0
+ Long,123,DOUBLE,Double,123.0
+ Float,123.0,DOUBLE,Double,123.0
+ Double,123.0,DOUBLE,Double,123.0
+ String,123,DOUBLE,Double,123.0
+ String,0x7b,DOUBLE,THROWS,
+ String,123.0,DOUBLE,Double,123.0
+ String,1.230000e+02,DOUBLE,Double,123.0
+ Float,123.45,DOUBLE,Double,123.45
+ Double,123.45,DOUBLE,Double,123.45
+ String,123.45,DOUBLE,Double,123.45
+ String,1.234500e+02,DOUBLE,Double,123.45
+ String,0x1.edcdp6,DOUBLE,Double,123.4501953125
+ Integer,16777217,DOUBLE,Double,1.6777217E7
+ Long,16777217,DOUBLE,Double,1.6777217E7
+ Double,1.6777217E7,DOUBLE,Double,1.6777217E7
+ String,16777217,DOUBLE,Double,1.6777217E7
+ String,16777217.0,DOUBLE,Double,1.6777217E7
+ Long,2147483648,DOUBLE,Double,2.147483648E9
+ Double,2.147483648E9,DOUBLE,Double,2.147483648E9
+ String,2147483648,DOUBLE,Double,2.147483648E9
+ String,2147483648.0,DOUBLE,Double,2.147483648E9
+ Long,9007199254740993,DOUBLE,Double,9.007199254740992E15
+ String,9007199254740993,DOUBLE,Double,9.007199254740992E15
+ String,9007199254740993.0,DOUBLE,Double,9.007199254740992E15
+ String,9223372036854775808,DOUBLE,Double,9.223372036854776E18
+ String,9223372036854775808.0,DOUBLE,Double,9.223372036854776E18
+ String,680564693277057720000000000000000000000,DOUBLE,Double,6.805646932770577E38
+ String,680564693277057720000000000000000000000.0,DOUBLE,Double,6.805646932770577E38
+ Integer,123,FLOAT,Float,123.0
+ Long,123,FLOAT,Float,123.0
+ Float,123.0,FLOAT,Float,123.0
+ Double,123.0,FLOAT,Float,123.0
+ String,123,FLOAT,Float,123.0
+ String,0x7b,FLOAT,THROWS,
+ String,123.0,FLOAT,Float,123.0
+ String,1.230000e+02,FLOAT,Float,123.0
+ Float,123.45,FLOAT,Float,123.45
+ Double,123.45,FLOAT,Float,123.45
+ String,123.45,FLOAT,Float,123.45
+ String,1.234500e+02,FLOAT,Float,123.45
+ String,0x1.edcdp6,FLOAT,Float,123.450195
+ Integer,16777217,FLOAT,Float,1.6777216E7
+ Long,16777217,FLOAT,Float,1.6777216E7
+ Double,1.6777217E7,FLOAT,Float,1.6777216E7
+ String,16777217,FLOAT,Float,1.6777216E7
+ String,16777217.0,FLOAT,Float,1.6777216E7
+ Long,2147483648,FLOAT,Float,2.1474836E9
+ Double,2.147483648E9,FLOAT,Float,2.1474836E9
+ String,2147483648,FLOAT,Float,2.1474836E9
+ String,2147483648.0,FLOAT,Float,2.1474836E9
+ Long,9007199254740993,FLOAT,Float,9.007199E15
+ String,9007199254740993,FLOAT,Float,9.007199E15
+ String,9007199254740993.0,FLOAT,Float,9.007199E15
+ String,9223372036854775808,FLOAT,Float,9.223372E18
+ String,9223372036854775808.0,FLOAT,Float,9.223372E18
+ String,680564693277057720000000000000000000000,FLOAT,Float,Infinity
+ String,680564693277057720000000000000000000000.0,FLOAT,Float,Infinity
+ Integer,123,AUTO,Integer,123
+ Long,123,AUTO,Long,123
+ Float,123.0,AUTO,Float,123.0
+ Double,123.0,AUTO,Double,123.0
+ String,123,AUTO,Integer,123
+ String,0x7b,AUTO,Integer,123
+ String,123.0,AUTO,Float,123.0
+ String,1.230000e+02,AUTO,Float,123.0
+ Float,123.45,AUTO,Float,123.45
+ Double,123.45,AUTO,Double,123.45
+ String,123.45,AUTO,Float,123.45
+ String,1.234500e+02,AUTO,Float,123.45
+ String,0x1.edcdp6,AUTO,Float,123.450195
+ Integer,16777217,AUTO,Integer,16777217
+ Long,16777217,AUTO,Long,16777217
+ Double,1.6777217E7,AUTO,Double,1.6777217E7
+ String,16777217,AUTO,Integer,16777217
+ String,16777217.0,AUTO,Float,1.6777216E7
+ Long,2147483648,AUTO,Long,2147483648
+ Double,2.147483648E9,AUTO,Double,2.147483648E9
+ String,2147483648,AUTO,Long,2147483648
+ String,2147483648.0,AUTO,Float,2.1474836E9
+ Long,9007199254740993,AUTO,Long,9007199254740993
+ String,9007199254740993,AUTO,Long,9007199254740993
+ String,9007199254740993.0,AUTO,Float,9.007199E15
+ String,9223372036854775808,AUTO,Float,9.223372E18
+ String,9223372036854775808.0,AUTO,Float,9.223372E18
+ String,680564693277057720000000000000000000000,AUTO,Float,Infinity
+ String,680564693277057720000000000000000000000.0,AUTO,Float,Infinity
+ """;
+
+ static Stream