{$CLEO .s} {$INCLUDE_ONCE ../cleo_tester.inc} script_name '2703' test("2703 (toggle_bit)", tests) terminate_this_custom_script function tests it("should toggle bits", test1) it("should handle numbers as bool", test2) return function test1 0@ = 0x12345678 2703: toggle_bit {var_number} 0@ {bitIndex} 0 {state} true assert_eq(0@, 0x12345679) 0@ = 0x12345678 2703: toggle_bit {var_number} 0@ {bitIndex} 0 {state} false // was not set assert_eq(0@, 0x12345678) 0@ = 0x12345678 2703: toggle_bit {var_number} 0@ {bitIndex} 3 {state} true // already set assert_eq(0@, 0x12345678) 0@ = 0x12345678 2703: toggle_bit {var_number} 0@ {bitIndex} 3 {state} false assert_eq(0@, 0x12345670) 0@ = 0x12345678 2703: toggle_bit {var_number} 0@ {bitIndex} 13 {state} true assert_eq(0@, 0x12347678) 0@ = 0x12345678 2703: toggle_bit {var_number} 0@ {bitIndex} 13 {state} false // was not set assert_eq(0@, 0x12345678) 0@ = 0x12345678 2703: toggle_bit {var_number} 0@ {bitIndex} 14 {state} true // already set assert_eq(0@, 0x12345678) 0@ = 0x12345678 2703: toggle_bit {var_number} 0@ {bitIndex} 14 {state} false assert_eq(0@, 0x12341678) 0@ = 0x12345678 2703: toggle_bit {var_number} 0@ {bitIndex} 28 {state} true // already set assert_eq(0@, 0x12345678) 0@ = 0x12345678 2703: toggle_bit {var_number} 0@ {bitIndex} 28 {state} false assert_eq(0@, 0x02345678) 0@ = 0x12345678 2703: toggle_bit {var_number} 0@ {bitIndex} 31 {state} true assert_eq(0@, 0x92345678) 0@ = 0x12345678 2703: toggle_bit {var_number} 0@ {bitIndex} 31 {state} false // was not set assert_eq(0@, 0x12345678) end function test2 0@ = 0xF 2703: toggle_bit {var_number} 0@ {bitIndex} 0 {state} 0 assert_eq(0@, 0xE) 0@ = 0x0 2703: toggle_bit {var_number} 0@ {bitIndex} 0 {state} 1 assert_eq(0@, 0x1) 0@ = 0x0 2703: toggle_bit {var_number} 0@ {bitIndex} 0 {state} 2 assert_eq(0@, 0x1) 0@ = 0x0 2703: toggle_bit {var_number} 0@ {bitIndex} 0 {state} -1 assert_eq(0@, 0x1) 0@ = 0x0 2703: toggle_bit {var_number} 0@ {bitIndex} 0 {state} 0x00010000 assert_eq(0@, 0x1) 0@ = 0x0 2703: toggle_bit {var_number} 0@ {bitIndex} 0 {state} 0x10000000 assert_eq(0@, 0x1) end