From 717c99a4a6f0a6258c3cfeff54d27fb048c505dd Mon Sep 17 00:00:00 2001 From: Anthony Foxclaw <35226681+tonytins@users.noreply.github.com> Date: Thu, 6 Feb 2020 22:10:21 -0500 Subject: [PATCH] Finished porting over the unit tests --- src/vm.rs | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/src/vm.rs b/src/vm.rs index 04f582f..486ba3c 100644 --- a/src/vm.rs +++ b/src/vm.rs @@ -298,6 +298,38 @@ mod vm_tests { assert_eq!(vm.equal_flag, false); } + #[test] + fn test_lte_opcode() { + let mut vm = get_test_vm(); + vm.registers[0] = 20; + vm.registers[1] = 10; + vm.program = vec![14, 0, 1, 0, 14, 0, 1, 0, 14, 0, 1, 0]; + vm.run_once(); + assert_eq!(vm.equal_flag, false); + vm.registers[0] = 10; + vm.run_once(); + assert_eq!(vm.equal_flag, true); + vm.registers[0] = 5; + vm.run_once(); + assert_eq!(vm.equal_flag, true); + } + + #[test] + fn test_lt_opcode() { + let mut vm = get_test_vm(); + vm.registers[0] = 20; + vm.registers[1] = 10; + vm.program = vec![15, 0, 1, 0, 15, 0, 1, 0, 15, 0, 1, 0]; + vm.run_once(); + assert_eq!(vm.equal_flag, false); + vm.registers[0] = 10; + vm.run_once(); + assert_eq!(vm.equal_flag, false); + vm.registers[0] = 5; + vm.run_once(); + assert_eq!(vm.equal_flag, true); + } + #[test] fn test_opcode_igl() { let mut vm = get_test_vm(); @@ -335,6 +367,16 @@ mod vm_tests { assert_eq!(vm.pc, 0); } + #[test] + fn test_jmpe_opcode() { + let mut vm = get_test_vm(); + vm.registers[0] = 7; + vm.equal_flag = true; + vm.program = vec![16, 0, 0, 0, 17, 0, 0, 0, 17, 0, 0, 0]; + vm.run_once(); + assert_eq!(vm.pc, 7); + } + #[test] fn test_load_opcode() { let mut vm = get_test_vm(); @@ -343,4 +385,5 @@ mod vm_tests { vm.run(); assert_eq!(vm.registers[0], 500); } + }