use std::{ convert::TryInto, ops::{Range, RangeFrom, RangeTo}, }; use ndhistogram::axis::BinInterval; #[test] fn test_binrange_equality() { let underflow0a = BinInterval::underflow(0.0); let underflow0b = BinInterval::underflow(0.0); let underflow1a = BinInterval::underflow(1.0); let overflow0a = BinInterval::overflow(0.0); let overflow0b = BinInterval::overflow(0.0); let overflow1a = BinInterval::overflow(1.0); let bin0a = BinInterval::new(0.0, 1.0); let bin0b = BinInterval::new(0.0, 1.0); let bin1a = BinInterval::new(1.0, 2.0); assert_eq!(underflow0a, underflow0b); assert_eq!(overflow0a, overflow0b); assert_eq!(bin0a, bin0b); assert_ne!(underflow0a, underflow1a); assert_ne!(overflow0a, overflow1a); assert_ne!(bin0a, bin1a); assert_ne!(underflow0a, overflow0a); assert_ne!(underflow0a, bin0a); assert_ne!(bin0a, overflow0a); } #[test] fn test_binrange_underflow_debug() { let underflow = BinInterval::underflow(0.0); println!("{:?}", underflow); } #[test] fn test_binrange_overflow_debug() { let overflow = BinInterval::overflow(0.0); println!("{:?}", overflow); } #[test] fn test_binrange_bin_debug() { let bin = BinInterval::new(0.0, 1.0); println!("{:?}", bin); } #[test] fn test_binrange_underflow_display() { let underflow = BinInterval::underflow(0.0); println!("{}", underflow); } #[test] fn test_binrange_overflow_display() { let overflow = BinInterval::overflow(0.0); println!("{}", overflow); } #[test] fn test_binrange_bin_display() { let bin = BinInterval::new(0.0, 1.0); println!("{}", bin); } #[test] #[allow(clippy::float_cmp)] fn test_binrange_bin_conversion() { let start = 0.0; let end = 1.0; let bin = BinInterval::new(start, end); let range: Range<_> = bin.try_into().unwrap(); let bin2: BinInterval<_> = range.clone().into(); assert_eq!(range.start, start); assert_eq!(range.end, end); assert_eq!(bin, bin2); } #[test] #[allow(clippy::float_cmp)] fn test_binrange_underflow_conversion() { let end = 1.0; let bin = BinInterval::underflow(end); let range: RangeTo<_> = bin.try_into().unwrap(); let bin2: BinInterval<_> = range.into(); assert_eq!(range.end, end); assert_eq!(bin, bin2); } #[test] #[allow(clippy::float_cmp)] fn test_binrange_overflow_conversion() { let start = 1.0; let bin = BinInterval::overflow(start); let range: RangeFrom<_> = bin.try_into().unwrap(); let bin2: BinInterval<_> = range.clone().into(); assert_eq!(range.start, start); assert_eq!(bin, bin2); } #[test] fn test_binrange_is_clone() { let bin = BinInterval::new(0.0, 1.0); assert_eq!(bin, bin.clone()); } #[test] fn test_binrange_start_method() { let underflow = BinInterval::underflow(0.0); let overflow = BinInterval::overflow(1.0); let bin = BinInterval::new(0.0, 1.0); assert_eq!(bin.start(), Some(0.0)); assert_eq!(underflow.start(), None); assert_eq!(overflow.start(), Some(1.0)); } #[test] fn test_binrange_end_method() { let underflow = BinInterval::underflow(0.0); let overflow = BinInterval::overflow(1.0); let bin = BinInterval::new(0.0, 1.0); assert_eq!(bin.end(), Some(1.0)); assert_eq!(underflow.end(), Some(0.0)); assert_eq!(overflow.end(), None); }