Skip to content

Commit 5c763c3

Browse files
committed
more test
1 parent 40626dc commit 5c763c3

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

opentelemetry/src/common.rs

+25
Original file line numberDiff line numberDiff line change
@@ -672,6 +672,10 @@ mod tests {
672672
let kv2 = KeyValue::new("key", std::f64::INFINITY);
673673
assert_eq!(kv1, kv2);
674674

675+
let kv1 = KeyValue::new("key", std::f64::NEG_INFINITY);
676+
let kv2 = KeyValue::new("key", std::f64::NEG_INFINITY);
677+
assert_eq!(kv1, kv2);
678+
675679
let mut rng = rand::thread_rng();
676680

677681
for _ in 0..100 {
@@ -692,6 +696,10 @@ mod tests {
692696
let kv2 = KeyValue::new("key", 1.001);
693697
assert_eq!(hash_helper(&kv1), hash_helper(&kv2));
694698

699+
let kv1 = KeyValue::new("key", 1.001);
700+
let kv2 = KeyValue::new("key", 1.002);
701+
assert_ne!(hash_helper(&kv1), hash_helper(&kv2));
702+
695703
let kv1 = KeyValue::new("key", std::f64::NAN);
696704
let kv2 = KeyValue::new("key", std::f64::NAN);
697705
assert_eq!(hash_helper(&kv1), hash_helper(&kv2));
@@ -710,6 +718,23 @@ mod tests {
710718
}
711719
}
712720

721+
#[test]
722+
fn hash_kv_order() {
723+
let kv1 = KeyValue::new("a", 1.0);
724+
let kv2 = KeyValue::new("b", 1.0);
725+
assert!(kv1 < kv2);
726+
727+
let float_vals = [
728+
0.0, 1.0, -1.0, std::f64::INFINITY, std::f64::NEG_INFINITY, std::f64::NAN, std::f64::MIN, std::f64::MAX,
729+
];
730+
731+
for v in float_vals {
732+
let kv1 = KeyValue::new("a", v);
733+
let kv2 = KeyValue::new("b", v);
734+
assert!(kv1 < kv2, "Order is solely based on key!");
735+
}
736+
}
737+
713738
fn hash_helper<T: Hash>(item: &T) -> u64 {
714739
let mut hasher = DefaultHasher::new();
715740
item.hash(&mut hasher);

0 commit comments

Comments
 (0)