From 23cc193333642d6fca8d92ea7e74756bfca6d29e Mon Sep 17 00:00:00 2001 From: Jur van den Berg Date: Wed, 29 May 2019 15:38:00 +0200 Subject: [PATCH] Fix tests --- tests/advanced3.rs | 12 +++++++----- tests/advancedstack.rs | 14 +++++++++++--- tests/task4.rs | 17 +++++++++-------- 3 files changed, 27 insertions(+), 16 deletions(-) diff --git a/tests/advanced3.rs b/tests/advanced3.rs index 5370d59..76e3b2d 100644 --- a/tests/advanced3.rs +++ b/tests/advanced3.rs @@ -8,12 +8,13 @@ fn steps(machine: &mut rustijvm::Machine, num: usize) { #[test] fn advanced3_wide1() { - let mut machine = rustijvm::Machine::new_from_file("files/advanced/test-wide1.ijvm").unwrap(); + use rustijvm::value::Value::Int; + let mut machine = rustijvm::Machine::new_from_file("files/advanced/test-wide1.ijvm").unwrap(); steps(&mut machine, 6); - assert_eq!(machine.cur_frame().get(1), Ok(0x1)); + assert_eq!(machine.cur_frame().get(1), Ok(&Int(0x1))); steps(&mut machine, 2); - assert_eq!(machine.cur_frame().get(257), Ok(0x2)); + assert_eq!(machine.cur_frame().get(257), Ok(&Int(0x2))); steps(&mut machine, 1); assert_eq!(machine.get_tos(), Ok(0x1)); @@ -23,12 +24,13 @@ fn advanced3_wide1() { #[test] fn advanced3_wide2() { + use rustijvm::value::Value::Int; let mut machine = rustijvm::Machine::new_from_file("files/advanced/test-wide2.ijvm").unwrap(); steps(&mut machine, 6); - assert_eq!(machine.cur_frame().get(1), Ok(0x1)); + assert_eq!(machine.cur_frame().get(1), Ok(&Int(0x1))); steps(&mut machine, 2); - assert_eq!(machine.cur_frame().get(32768), Ok(0x2)); + assert_eq!(machine.cur_frame().get(32768), Ok(&Int(0x2))); steps(&mut machine, 1); assert_eq!(machine.get_tos(), Ok(0x1)); diff --git a/tests/advancedstack.rs b/tests/advancedstack.rs index 8f79bc1..ee086a4 100644 --- a/tests/advancedstack.rs +++ b/tests/advancedstack.rs @@ -1,5 +1,7 @@ extern crate rustijvm; +use std::convert::TryInto; + fn steps(machine: &mut rustijvm::Machine, num: usize) { for _ in 0..num { machine.step().unwrap(); @@ -44,7 +46,9 @@ fn advancedstack_contents() { let size = stack.len(); assert!(size >= 100); - let markers = (0..size).filter(|i| { stack.get(*i) == 0x2 }).count(); + let markers = (0..size).filter(|i| { + stack.get(*i).try_into().unwrap_or(0) == 0x2 + }).count(); assert!(markers >= 99); } @@ -55,7 +59,9 @@ fn advancedstack_method() { steps(&mut machine, 8); { let stack = machine.cur_stack(); - let markers = (0..stack.len()).filter(|i| { stack.get(*i) == 0x2 }).count(); + let markers = (0..stack.len()).filter(|i| { + stack.get(*i).try_into().unwrap_or(0) == 0x2 + }).count(); assert_eq!(markers, 4); } @@ -63,7 +69,9 @@ fn advancedstack_method() { steps(&mut machine, 2 * 5000); { let stack = machine.cur_stack(); - let markers = (0..stack.len()).filter(|i| { stack.get(*i) == 0x2 }).count(); + let markers = (0..stack.len()).filter(|i| { + stack.get(*i).try_into().unwrap_or(0) == 0x2 + }).count(); assert!(markers > 4000); } } diff --git a/tests/task4.rs b/tests/task4.rs index 15ca0c4..7781e1c 100644 --- a/tests/task4.rs +++ b/tests/task4.rs @@ -100,23 +100,24 @@ fn task4_iteration_load() { #[test] fn task4_iinc() { + use rustijvm::value::Value::Int; let mut machine = rustijvm::Machine::new_from_file("files/task4/IINCTest.ijvm").unwrap(); steps(&mut machine, 4); - assert_eq!(machine.cur_frame().get(0), Ok(0)); - assert_eq!(machine.cur_frame().get(1), Ok(0)); + assert_eq!(machine.cur_frame().get(0), Ok(&Int(0))); + assert_eq!(machine.cur_frame().get(1), Ok(&Int(0))); steps(&mut machine, 1); - assert_eq!(machine.cur_frame().get(0), Ok(0)); + assert_eq!(machine.cur_frame().get(0), Ok(&Int(0))); steps(&mut machine, 1); - assert_eq!(machine.cur_frame().get(0), Ok(1)); + assert_eq!(machine.cur_frame().get(0), Ok(&Int(1))); steps(&mut machine, 1); - assert_eq!(machine.cur_frame().get(0), Ok(4)); + assert_eq!(machine.cur_frame().get(0), Ok(&Int(4))); steps(&mut machine, 1); - assert_eq!(machine.cur_frame().get(1), Ok(0)); + assert_eq!(machine.cur_frame().get(1), Ok(&Int(0))); steps(&mut machine, 1); - assert_eq!(machine.cur_frame().get(1), Ok(-1)); + assert_eq!(machine.cur_frame().get(1), Ok(&Int(-1))); steps(&mut machine, 1); - assert_eq!(machine.cur_frame().get(1), Ok(-4)); + assert_eq!(machine.cur_frame().get(1), Ok(&Int(-4))); }