@@ -441,25 +441,50 @@ fn pg_numeric_bigdecimal_to_sql() {
441441 }
442442
443443 quickcheck ( correct_rep as fn ( u64 , u64 ) -> bool ) ;
444+
445+ let test_values = vec ! [
446+ "1.0" ,
447+ "141.0" ,
448+ "-1.0" ,
449+ // Larger than u64
450+ "18446744073709551616" ,
451+ // Powers of 10k (numeric is represented in base 10k)
452+ "10000" ,
453+ "100000000" ,
454+ "1.100001" ,
455+ "10000.100001" ,
456+ ] ;
457+
458+ for value in test_values {
459+ let expected = format ! ( "'{}'::numeric" , value) ;
460+ let value = value. parse :: < BigDecimal > ( ) . unwrap ( ) ;
461+ query_to_sql_equality :: < Numeric , _ > ( & expected, value) ;
462+ }
444463}
445464
446465#[ test]
447466#[ cfg( feature = "postgres" ) ]
448467fn pg_numeric_bigdecimal_from_sql ( ) {
449468 use self :: bigdecimal:: BigDecimal ;
450469
451- let query = "1.0::numeric" ;
452- let expected_value: BigDecimal = "1.0" . parse ( ) . expect ( "Could not parse to a BigDecimal" ) ;
453- assert_eq ! ( expected_value, query_single_value:: <Numeric , BigDecimal >( query) ) ;
454-
455- let query = "141.00::numeric" ;
456- let expected_value: BigDecimal = "141.00" . parse ( ) . expect ( "Could not parse to a BigDecimal" ) ;
457- assert_eq ! ( expected_value, query_single_value:: <Numeric , BigDecimal >( query) ) ;
470+ let values = vec ! [
471+ "1.0" ,
472+ "141.0" ,
473+ "-1.0" ,
474+ // Larger than u64
475+ "18446744073709551616" ,
476+ // Powers of 10k (numeric is represented in base 10k)
477+ "10000" ,
478+ "100000000" ,
479+ "1.100001" ,
480+ "10000.100001" ,
481+ ] ;
458482
459- // Some non standard values:
460- let query = "18446744073709551616::numeric" ; // 2^64; doesn't fit in u64
461- let expected_value: BigDecimal = "18446744073709551616.00" . parse ( ) . expect ( "Could not parse to a BigDecimal" ) ;
462- assert_eq ! ( expected_value, query_single_value:: <Numeric , BigDecimal >( query) ) ;
483+ for value in values {
484+ let query = format ! ( "'{}'::numeric" , value) ;
485+ let expected = value. parse :: < BigDecimal > ( ) . unwrap ( ) ;
486+ assert_eq ! ( expected, query_single_value:: <Numeric , BigDecimal >( & query) ) ;
487+ }
463488}
464489
465490#[ test]
0 commit comments