diff --git a/types/src/pair.rs b/types/src/pair.rs index a0d7d87..28e4565 100644 --- a/types/src/pair.rs +++ b/types/src/pair.rs @@ -7,7 +7,7 @@ use std::fmt; use super::*; use object::Object; -#[derive(Debug)] +#[derive(Debug, PartialEq)] pub struct Pair { pub car: Obj, pub cdr: Obj @@ -72,4 +72,11 @@ impl PartialEq for Pair { #[cfg(test)] mod tests { use super::Pair; + + #[test] + fn empty_pairs_are_equal() { + let a = Pair::empty(); + let b = Pair::empty(); + assert_eq!(a, b); + } } diff --git a/types/tests/equality_value.rs b/types/tests/equality_value.rs new file mode 100644 index 0000000..6402138 --- /dev/null +++ b/types/tests/equality_value.rs @@ -0,0 +1,16 @@ +/* types/tests/equality_value.rs + * Eryn Wells + */ + +//! Tests of value-based equality for various types herein. + +extern crate sibiltypes; + +use sibiltypes::{Obj, Pair, Sym}; + +#[test] +fn pairs_with_one_similar_symbol_are_equal() { + let pa = Pair::with_car(Obj::new(Sym::with_str("ab"))); + let pb = Pair::with_car(Obj::new(Sym::with_str("ab"))); + assert_eq!(pa, pb); +}