#[cfg(test)]
mod tests {
use crate::dtype::Nullability;
use crate::scalar::Scalar;
#[test]
fn test_null_comparison_inconsistency() {
let null_i32 = Scalar::null_native::<i32>();
let null_i64 = Scalar::null_native::<i64>();
let prim_i32 = null_i32.as_primitive();
let prim_i64 = null_i64.as_primitive();
assert_eq!(prim_i32.partial_cmp(&prim_i64), None);
let bool_nullable = Scalar::bool(true, Nullability::Nullable);
let bool_non_nullable = Scalar::bool(true, Nullability::NonNullable);
let bool1 = bool_nullable.as_bool();
let bool2 = bool_non_nullable.as_bool();
assert!(bool1.partial_cmp(&bool2).is_some()); }
#[test]
fn test_nullability_in_equality() {
let nullable = Scalar::primitive(42i32, Nullability::Nullable);
let non_nullable = Scalar::primitive(42i32, Nullability::NonNullable);
assert_ne!(nullable.dtype(), non_nullable.dtype());
assert_eq!(nullable, non_nullable);
}
}