open OUnit2 let test_interrupt _ = let input_refs = [ ( 0b00000000, [] ); ( 0b00000001, [ Interrupt.V_Blank ] ); ( 0b00000010, [ Interrupt.LCD_Stat ] ); ( 0b00000100, [ Interrupt.Timer ] ); ( 0b00001000, [ Interrupt.Serial ] ); ( 0b00010000, [ Interrupt.Joypad ] ); ] in let test = function ( byte, ref_flags ) -> let computed_flags = Interrupt.get_flags byte in List.iter2 (fun f1 f2 -> assert_equal f1 f2) ref_flags computed_flags in List.iter test input_refs (* Name the test cases and group them together *) let suite = "suite">::: [ "test interrupt parsing">:: test_interrupt ] let () = run_test_tt_main suite