[types] Add some tests for pairs
Working on defining a pattern for naming tests so it is easier to see what is testing what.
This commit is contained in:
parent
107bb394b7
commit
ce50ab5101
2 changed files with 38 additions and 4 deletions
|
@ -4,8 +4,7 @@
|
|||
|
||||
use std::any::Any;
|
||||
use std::fmt;
|
||||
use super::*;
|
||||
use object::Object;
|
||||
use object::{Obj, Object};
|
||||
|
||||
#[derive(Debug, PartialEq)]
|
||||
pub struct Pair {
|
||||
|
@ -72,11 +71,46 @@ impl PartialEq<Obj> for Pair {
|
|||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::Pair;
|
||||
use object::Obj;
|
||||
use sym::Sym;
|
||||
|
||||
#[test]
|
||||
fn empty_pairs_are_equal() {
|
||||
fn eq_empty_pairs() {
|
||||
let a = Pair::empty();
|
||||
let b = Pair::empty();
|
||||
assert_eq!(a, b);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn display_empty_pair() {
|
||||
let a = Pair::empty();
|
||||
let disp = format!("{}", a);
|
||||
assert_eq!(disp, "(())");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn display_single_element_pair() {
|
||||
let a = Pair::with_car(Obj::new(Sym::new("abc".to_string())));
|
||||
let disp = format!("{}", a);
|
||||
assert_eq!(disp, "(abc)");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn display_dotted_pair() {
|
||||
let car = Obj::new(Sym::new("abc".to_string()));
|
||||
let cdr = Obj::new(Sym::new("def".to_string()));
|
||||
let p = Pair::new(car, cdr);
|
||||
let disp = format!("{}", p);
|
||||
assert_eq!(disp, "(abc . def)");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn display_long_dotted_pair() {
|
||||
let a = Obj::new(Sym::new("abc".to_string()));
|
||||
let d = Obj::new(Sym::new("def".to_string()));
|
||||
let g = Obj::new(Sym::new("ghi".to_string()));
|
||||
let p = Pair::new(a, Obj::new(Pair::new(d, g)));
|
||||
let disp = format!("{}", p);
|
||||
assert_eq!(disp, "(abc def . ghi)");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -54,7 +54,7 @@ mod tests {
|
|||
use super::Sym;
|
||||
|
||||
#[test]
|
||||
fn syms_with_the_same_name_are_equal() {
|
||||
fn eq_syms_with_same_name() {
|
||||
let a = Sym::with_str("abc");
|
||||
let b = Sym::with_str("abc");
|
||||
assert_eq!(a, b);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue