@@ -525,36 +525,42 @@ public async Task Test_DoubleAndFloatConverters()
525525
526526 List < DoubleFloatTypeTest > rows = new List < DoubleFloatTypeTest >
527527 {
528- new ( ) { Id = 0 , DoubleValue = 123.456 , FloatValue = 78.9f , NullableDouble = 999.999 , NullableFloat = 111.111f } ,
529- new ( ) { Id = 1 , DoubleValue = double . NaN , FloatValue = float . NaN , NullableDouble = double . NaN , NullableFloat = float . NaN } ,
530- new ( ) { Id = 2 , DoubleValue = double . PositiveInfinity , FloatValue = float . PositiveInfinity , NullableDouble = null , NullableFloat = null } ,
531- new ( ) { Id = 3 , DoubleValue = double . NegativeInfinity , FloatValue = float . NegativeInfinity , NullableDouble = 0.0 , NullableFloat = 0.0f }
528+ new ( ) { DoubleValue = 123.456 , FloatValue = 78.9f , FloatDoubleMap = new Dictionary < float , double > { { 1.1f , 2.2 } } , FloatList = new List < float > { 3.3f , 4.4f } } ,
529+ new ( ) { DoubleValue = double . NaN , FloatValue = float . NaN , FloatDoubleMap = new Dictionary < float , double > { { float . NaN , double . NaN } } , FloatList = new List < float > { float . NaN } } ,
530+ new ( ) { DoubleValue = double . PositiveInfinity , FloatValue = null , FloatDoubleMap = new Dictionary < float , double > { { float . PositiveInfinity , double . NegativeInfinity } } , FloatList = new List < float > { float . PositiveInfinity } } ,
531+ new ( ) { DoubleValue = double . NegativeInfinity , FloatValue = float . NegativeInfinity , FloatDoubleMap = new Dictionary < float , double > { { 0.0f , 0.0 } } , FloatList = new List < float > { 0.0f } }
532532 } ;
533533
534534 var result = await table . InsertManyAsync ( rows ) ;
535535 Assert . Equal ( 4 , result . InsertedCount ) ;
536536
537- var row0 = await table . FindOneAsync ( Builders < DoubleFloatTypeTest > . TableFilter . Eq ( x => x . Id , 0 ) ) ;
538- Assert . Equal ( 123.456 , row0 . DoubleValue , 5 ) ;
539- Assert . Equal ( 78.9f , row0 . FloatValue , 5 ) ;
540-
541- var row1 = await table . FindOneAsync ( Builders < DoubleFloatTypeTest > . TableFilter . Eq ( x => x . Id , 1 ) ) ;
542- Assert . True ( double . IsNaN ( row1 . DoubleValue ) ) ;
543- Assert . True ( float . IsNaN ( row1 . FloatValue ) ) ;
544-
545- var row2 = await table . FindOneAsync ( Builders < DoubleFloatTypeTest > . TableFilter . Eq ( x => x . Id , 2 ) ) ;
546- Assert . True ( double . IsPositiveInfinity ( row2 . DoubleValue ) ) ;
547- Assert . True ( float . IsPositiveInfinity ( row2 . FloatValue ) ) ;
548- Assert . Null ( row2 . NullableDouble ) ;
549- Assert . Null ( row2 . NullableFloat ) ;
550-
551- var row3 = await table . FindOneAsync ( Builders < DoubleFloatTypeTest > . TableFilter . Eq ( x => x . Id , 3 ) ) ;
552- Assert . True ( double . IsNegativeInfinity ( row3 . DoubleValue ) ) ;
553- Assert . True ( float . IsNegativeInfinity ( row3 . FloatValue ) ) ;
537+ var row0 = await table . FindOneAsync ( Builders < DoubleFloatTypeTest > . TableFilter . Eq ( x => x . DoubleValue , 123.456 ) ) ;
538+ Assert . Equal ( 123.456 , row0 . DoubleValue . Value , 5 ) ;
539+ Assert . Equal ( 78.9f , row0 . FloatValue . Value , 5 ) ;
540+ Assert . Equal ( new Dictionary < float , double > { { 1.1f , 2.2 } } , row0 . FloatDoubleMap ) ;
541+ Assert . Equal ( new List < float > { 3.3f , 4.4f } , row0 . FloatList ) ;
542+
543+ var row1 = await table . FindOneAsync ( Builders < DoubleFloatTypeTest > . TableFilter . Eq ( x => x . DoubleValue , double . NaN ) ) ;
544+ Assert . True ( double . IsNaN ( row1 . DoubleValue . Value ) ) ;
545+ Assert . True ( float . IsNaN ( row1 . FloatValue . Value ) ) ;
546+ Assert . Equal ( new Dictionary < float , double > { { float . NaN , double . NaN } } , row1 . FloatDoubleMap ) ;
547+ Assert . Equal ( new List < float > { float . NaN } , row1 . FloatList ) ;
548+
549+ var row2 = await table . FindOneAsync ( Builders < DoubleFloatTypeTest > . TableFilter . Eq ( x => x . DoubleValue , double . PositiveInfinity ) ) ;
550+ Assert . True ( double . IsPositiveInfinity ( row2 . DoubleValue . Value ) ) ;
551+ Assert . Null ( row2 . FloatValue ) ;
552+ Assert . Equal ( new Dictionary < float , double > { { float . PositiveInfinity , double . NegativeInfinity } } , row2 . FloatDoubleMap ) ;
553+ Assert . Equal ( new List < float > { float . PositiveInfinity } , row2 . FloatList ) ;
554+
555+ var row3 = await table . FindOneAsync ( Builders < DoubleFloatTypeTest > . TableFilter . Eq ( x => x . DoubleValue , double . NegativeInfinity ) ) ;
556+ Assert . True ( double . IsNegativeInfinity ( row3 . DoubleValue . Value ) ) ;
557+ Assert . True ( float . IsNegativeInfinity ( row3 . FloatValue . Value ) ) ;
558+ Assert . Equal ( new Dictionary < float , double > { { 0.0f , 0.0 } } , row3 . FloatDoubleMap ) ;
559+ Assert . Equal ( new List < float > { 0.0f } , row3 . FloatList ) ;
554560 }
555561 finally
556562 {
557- await fixture . Database . DropTableAsync ( tableName ) ;
563+ await fixture . Database . DropTableAsync ( tableName , new ( ) { IfExists = true } ) ;
558564 }
559565 }
560566}
0 commit comments