From 52ce4fecf3eacf1908278b10fac6ffafa95602c9 Mon Sep 17 00:00:00 2001 From: Corwin Kuiper Date: Sun, 11 Apr 2021 03:30:28 +0100 Subject: [PATCH] add tests for the numbers --- src/number.rs | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/number.rs b/src/number.rs index aa8ecc0..9960aed 100644 --- a/src/number.rs +++ b/src/number.rs @@ -3,7 +3,7 @@ use core::{ ops::{Add, AddAssign, Div, DivAssign, Mul, MulAssign, Neg, Sub, SubAssign}, }; -#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord)] +#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Debug)] pub struct Num(i32); impl From for Num { @@ -104,6 +104,24 @@ impl Num { } } +#[test_case] +fn test_numbers(gba: &mut super::Gba) { + // test addition + let n: Num<8> = 1.into(); + assert_eq!(n + 2.into(), 3.into(), "testing that 1 + 2 == 3"); + + // test multiplication + let n: Num<8> = 5.into(); + assert_eq!(n * 3.into(), 15.into(), "testing that 5 * 3 == 15"); + + // test division + let n: Num<8> = 30.into(); + let p: Num<8> = 3.into(); + assert_eq!(n / 20.into(), p / 2.into(), "testing that 30 / 20 == 3 / 2"); + + assert_ne!(n, p, "testing that 30 != 3"); +} + impl Display for Num { fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { let integral = self.0 >> N;