Skip to content

Commit a3ceaf3

Browse files
authored
RUST-2147 Update float32 vector test and remove special casing (#523)
1 parent ff8742e commit a3ceaf3

File tree

2 files changed

+3
-30
lines changed

2 files changed

+3
-30
lines changed

src/tests/spec/json/bson-binary-vector/float32.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
{
3333
"description": "Infinity Vector FLOAT32",
3434
"valid": true,
35-
"vector": ["-inf", 0.0, "inf"],
35+
"vector": [{"$numberDouble": "-Infinity"}, 0.0, {"$numberDouble": "Infinity"} ],
3636
"dtype_hex": "0x27",
3737
"dtype_alias": "FLOAT32",
3838
"padding": 0,

src/tests/spec/vector.rs

Lines changed: 2 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -49,40 +49,13 @@ where
4949
u8::from_str_radix(s.trim_start_matches("0x"), 16).map_err(serde::de::Error::custom)
5050
}
5151

52+
#[derive(Deserialize)]
53+
#[serde(untagged)]
5254
enum Number {
5355
Int(i16),
5456
Float(f32),
5557
}
5658

57-
impl<'de> Deserialize<'de> for Number {
58-
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
59-
where
60-
D: Deserializer<'de>,
61-
{
62-
#[derive(Deserialize)]
63-
#[serde(untagged)]
64-
enum NumberHelper {
65-
Int(i16),
66-
Float(f32),
67-
String(String),
68-
}
69-
70-
let helper = NumberHelper::deserialize(deserializer)?;
71-
match helper {
72-
NumberHelper::Int(n) => Ok(Self::Int(n)),
73-
NumberHelper::Float(n) => Ok(Self::Float(n)),
74-
NumberHelper::String(s) => match s.as_str() {
75-
"inf" => Ok(Self::Float(f32::INFINITY)),
76-
"-inf" => Ok(Self::Float(f32::NEG_INFINITY)),
77-
other => Err(serde::de::Error::custom(format!(
78-
"unsupported number value {}",
79-
other
80-
))),
81-
},
82-
}
83-
}
84-
}
85-
8659
// Some of the invalid cases (e.g. mixed number types, padding for non-packed-bit vectors) are
8760
// impossible to construct, so we return an error from this method.
8861
fn vector_from_numbers(

0 commit comments

Comments
 (0)