Skip to content

Commit abc8d28

Browse files
committed
tests: add test for timeuuid ordering properties
1 parent 8d81a6b commit abc8d28

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

scylla-cql/src/frame/value_tests.rs

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
use crate::frame::value::CqlTimeuuid;
12
use crate::frame::{response::result::CqlValue, types::RawValue, value::LegacyBatchValuesIterator};
23
use crate::types::serialize::batch::{BatchValues, BatchValuesIterator, LegacyBatchValuesAdapter};
34
use crate::types::serialize::row::{RowSerializationContext, SerializeRow};
@@ -12,9 +13,11 @@ use super::value::{
1213
use bigdecimal::BigDecimal;
1314
use bytes::BufMut;
1415
use num_bigint::BigInt;
16+
use std::collections::hash_map::DefaultHasher;
1517
use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet};
16-
use std::hash::{BuildHasherDefault, Hasher};
18+
use std::hash::{BuildHasherDefault, Hash, Hasher};
1719
use std::net::{IpAddr, Ipv4Addr, Ipv6Addr};
20+
use std::str::FromStr;
1821
use std::{borrow::Cow, convert::TryInto};
1922
use uuid::Uuid;
2023

@@ -538,6 +541,24 @@ fn timeuuid_serialization() {
538541
}
539542
}
540543

544+
#[test]
545+
fn timeuuid_ordering_properties() {
546+
let x = CqlTimeuuid::from_str("00000000-0000-1000-8080-808080808080").unwrap();
547+
let y = CqlTimeuuid::from_str("00000000-0000-2000-8080-808080808080").unwrap();
548+
549+
let cmp_res = x.cmp(&y);
550+
assert_eq!(std::cmp::Ordering::Equal, cmp_res);
551+
552+
assert_eq!(x, y);
553+
554+
let compute_hash = |x: &CqlTimeuuid| {
555+
let mut hasher = DefaultHasher::new();
556+
x.hash(&mut hasher);
557+
hasher.finish()
558+
};
559+
assert_eq!(compute_hash(&x), compute_hash(&y));
560+
}
561+
541562
#[test]
542563
fn cqlduration_serialization() {
543564
let duration = CqlDuration {

0 commit comments

Comments
 (0)