Tests for run_query_iter()
This commit is contained in:
@@ -637,4 +637,45 @@ mod tests {
|
|||||||
|
|
||||||
assert_eq!(output, Ok(QueryResolution::False));
|
assert_eq!(output, Ok(QueryResolution::False));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
#[cfg_attr(miri, ignore)]
|
||||||
|
fn query_iterator_determinism() {
|
||||||
|
let mut machine = Machine::new_lib();
|
||||||
|
|
||||||
|
{
|
||||||
|
let mut iterator = machine.run_query_iter("X = 1.".into());
|
||||||
|
|
||||||
|
iterator.next();
|
||||||
|
assert_eq!(iterator.next(), None);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
let mut iterator = machine.run_query_iter("X = 1 ; false.".into());
|
||||||
|
|
||||||
|
iterator.next();
|
||||||
|
|
||||||
|
assert_eq!(iterator.next(), Some(Ok(QueryResolutionLine::False)));
|
||||||
|
assert_eq!(iterator.next(), None);
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
let mut iterator = machine.run_query_iter("false.".into());
|
||||||
|
|
||||||
|
assert_eq!(iterator.next(), Some(Ok(QueryResolutionLine::False)));
|
||||||
|
assert_eq!(iterator.next(), None);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
#[cfg_attr(miri, ignore)]
|
||||||
|
fn query_iterator_backtracking_when_no_variables() {
|
||||||
|
let mut machine = Machine::new_lib();
|
||||||
|
|
||||||
|
let mut iterator = machine.run_query_iter("true;false.".into());
|
||||||
|
|
||||||
|
assert_eq!(iterator.next(), Some(Ok(QueryResolutionLine::True)));
|
||||||
|
assert_eq!(iterator.next(), Some(Ok(QueryResolutionLine::False)));
|
||||||
|
assert_eq!(iterator.next(), None);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user