example unit test

This commit is contained in:
Fernando Herrera
2021-10-09 14:10:10 +01:00
parent 5021d61800
commit e3e4ae0591
10 changed files with 285 additions and 25 deletions

View File

@ -3,5 +3,5 @@ use crate::Value;
pub struct Example {
pub example: &'static str,
pub description: &'static str,
pub result: Option<Vec<Value>>,
pub result: Option<Value>,
}

View File

@ -374,6 +374,52 @@ impl PartialEq for Value {
(Value::Float { val: lhs, .. }, Value::Float { val: rhs, .. }) => lhs == rhs,
(Value::String { val: lhs, .. }, Value::String { val: rhs, .. }) => lhs == rhs,
(Value::Block { val: b1, .. }, Value::Block { val: b2, .. }) => b1 == b2,
(Value::List { vals: vals_lhs, .. }, Value::List { vals: vals_rhs, .. }) => {
for (lhs, rhs) in vals_lhs.iter().zip(vals_rhs) {
if lhs != rhs {
return false;
}
}
true
}
(
Value::Record {
cols: cols_lhs,
vals: vals_lhs,
..
},
Value::Record {
cols: cols_rhs,
vals: vals_rhs,
..
},
) => {
if cols_lhs != cols_rhs {
return false;
}
for (lhs, rhs) in vals_lhs.iter().zip(vals_rhs) {
if lhs != rhs {
return false;
}
}
true
}
(
Value::Stream {
stream: stream_lhs, ..
},
Value::Stream {
stream: stream_rhs, ..
},
) => {
let vals_lhs = stream_lhs.clone().collect_string();
let vals_rhs = stream_rhs.clone().collect_string();
vals_lhs == vals_rhs
}
_ => false,
}
}