* Returns 0 if value is not Infinity * Returns 1 if value is Infinity * Returns -1 if value is -Infinity */
| 958 | * Returns -1 if value is -Infinity |
| 959 | */ |
| 960 | int |
| 961 | IsBsonValueInfinity(const bson_value_t *value) |
| 962 | { |
| 963 | if (value->value_type == BSON_TYPE_DECIMAL128) |
| 964 | { |
| 965 | bool isPositiveInfinity = false; |
| 966 | if (IsDecimal128Infinity(value, &isPositiveInfinity)) |
| 967 | { |
| 968 | return isPositiveInfinity ? 1 : -1; |
| 969 | } |
| 970 | } |
| 971 | else if (value->value_type == BSON_TYPE_DOUBLE) |
| 972 | { |
| 973 | double doubleValue = BsonValueAsDouble(value); |
| 974 | |
| 975 | if (doubleValue == (double) INFINITY) |
| 976 | { |
| 977 | return 1; |
| 978 | } |
| 979 | |
| 980 | if (doubleValue == (double) -INFINITY) |
| 981 | { |
| 982 | return -1; |
| 983 | } |
| 984 | } |
| 985 | |
| 986 | return 0; |
| 987 | } |
| 988 | |
| 989 | |
| 990 | bool |
no test coverage detected