@@ -54,6 +54,9 @@ test_type!(f64(
5454test_type ! ( numeric<f64 >( Mssql ,
5555 "CAST(12 AS NUMERIC)" == 12_f64 ,
5656 "CAST(0.7 AS NUMERIC(2,1))" == 0.7_f64 ,
57+ "CAST(0.3 AS NUMERIC(2,1))" == 0.3_f64 ,
58+ "CAST(0.47 AS DECIMAL(3,2))" == 0.47_f64 ,
59+ "CAST(0.29 AS DECIMAL(3,2))" == 0.29_f64 ,
5760 "CAST(0.5678 AS NUMERIC(10,4))" == 0.5678_f64 ,
5861 "CAST(0.0003 AS NUMERIC(10,4))" == 0.0003_f64 ,
5962 "CAST(0.00003 AS NUMERIC(10,5))" == 0.00003_f64 ,
@@ -63,6 +66,16 @@ test_type!(numeric<f64>(Mssql,
6366 "CAST(123456789.0123456789 AS NUMERIC(38,10))" == 123_456_789.012_345_67_f64 ,
6467 "CAST(123456789.0123456789012 AS NUMERIC(38,13))" == 123_456_789.012_345_67_f64 ,
6568 "CAST(123456789.012345678901234 AS NUMERIC(38,15))" == 123_456_789.012_345_67_f64 ,
69+
70+ "CAST(1.0000000000000001 AS NUMERIC(18,16))" == 1.0000000000000001_f64 ,
71+ "CAST(0.99999999999999 AS NUMERIC(18,14))" == 0.99999999999999_f64 ,
72+ "CAST(2.00000000000001 AS NUMERIC(18,14))" == 2.00000000000001_f64 ,
73+ "CAST(333.33333333333333 AS NUMERIC(18,14))" == 333.33333333333333_f64 ,
74+ "CAST(0.14285714285714 AS NUMERIC(18,14))" == 0.14285714285714_f64 ,
75+ "CAST(9999999.99999999 AS NUMERIC(16,8))" == 9999999.99999999_f64 , // Close to the precision limit
76+ "CAST(9007199254740992 AS NUMERIC(16,0))" == 9007199254740992_f64 , // 2^53, largest integer that can be exactly represented as a f64
77+ "CAST(0.000123456 AS NUMERIC(38,38))" == 0.000123456_f64 ,
78+ "CAST(1e-38 AS NUMERIC(38,38))" == 1e-38_f64 ,
6679) ) ;
6780
6881test_type ! ( str_nvarchar<String >( Mssql ,
0 commit comments