@@ -45,90 +45,106 @@ fn assert_none_256(val: Option<u256>) { // 10
4545 assert!(is_none::<u256>(val));
4646}
4747
48+ // helper
4849fn if_test_this_function(index: u8, flag: u8) -> bool {
4950 jet::eq_8(index, flag)
5051}
5152
5253fn main() {
53- let flag: u8 = witness::FLAG;
54- let ifHappyPath: bool = if_test_this_function(0, flag);
54+ let function_index: u8 = witness::FUNCTION_INDEX;
5555
56- let some_u8: u8 = 255;
57- let some_u16: u16 = 65535;
58- let some_u32: u32 = 4294967295;
59- let some_u64: u64 = 18446744073709551615;
60- let some_u128: u128 = 340282366920938463463374607431768211455;
61- let some_u256: u256 = 115792089237316195423570985008687907853269984665640564039457584007913129639935;
56+ let first_arg_u8: Option<u8> = witness::FIRST_ARG_U8;
57+ let second_arg_u8: Option<u8> = witness::SECOND_ARG_U8;
6258
63- match ifHappyPath {
59+ let first_arg_u16: Option<u16> = witness::FIRST_ARG_U16;
60+ let second_arg_u16: Option<u16> = witness::SECOND_ARG_U16;
61+
62+ let first_arg_u32: Option<u32> = witness::FIRST_ARG_U32;
63+ let second_arg_u32: Option<u32> = witness::SECOND_ARG_U32;
64+
65+ let first_arg_u64: Option<u64> = witness::FIRST_ARG_U64;
66+ let second_arg_u64: Option<u64> = witness::SECOND_ARG_U64;
67+
68+ let first_arg_u128: Option<u128> = witness::FIRST_ARG_U128;
69+ let second_arg_u128: Option<u128> = witness::SECOND_ARG_U128;
70+
71+ let first_arg_u256: Option<u256> = witness::FIRST_ARG_U256;
72+ let second_arg_u256: Option<u256> = witness::SECOND_ARG_U256;
73+
74+ match if_test_this_function(0, function_index) {
75+ true => {
76+ assert_eq_8(unwrap(first_arg_u8), unwrap(second_arg_u8));
77+ },
78+ false => (),
79+ };
80+
81+ match if_test_this_function(1, function_index) {
82+ true => {
83+ assert_eq_16(unwrap(first_arg_u16), unwrap(second_arg_u16));
84+ },
85+ false => (),
86+ };
87+
88+ match if_test_this_function(2, function_index) {
89+ true => {
90+ assert_eq_32(unwrap(first_arg_u32), unwrap(second_arg_u32));
91+ },
92+ false => (),
93+ };
94+
95+ match if_test_this_function(3, function_index) {
96+ true => {
97+ assert_eq_64(unwrap(first_arg_u64), unwrap(second_arg_u64));
98+ },
99+ false => (),
100+ };
101+
102+ match if_test_this_function(4, function_index) {
103+ true => {
104+ assert_eq_256(unwrap(first_arg_u256), unwrap(second_arg_u256));
105+ },
106+ false => (),
107+ };
108+
109+ match if_test_this_function(5, function_index) {
110+ true => {
111+ assert_none_8(first_arg_u8);
112+ },
113+ false => (),
114+ };
115+
116+ match if_test_this_function(6, function_index) {
117+ true => {
118+ assert_none_16(first_arg_u16);
119+ },
120+ false => (),
121+ };
122+
123+ match if_test_this_function(7, function_index) {
124+ true => {
125+ assert_none_32(first_arg_u32);
126+ },
127+ false => (),
128+ };
129+
130+ match if_test_this_function(8, function_index) {
131+ true => {
132+ assert_none_64(first_arg_u64);
133+ },
134+ false => (),
135+ };
136+
137+ match if_test_this_function(9, function_index) {
138+ true => {
139+ assert_none_128(first_arg_u128);
140+ },
141+ false => (),
142+ };
143+
144+ match if_test_this_function(10, function_index) {
64145 true => {
65- assert_eq8(some_u8, some_u8);
66- assert_eq16(some_u16, some_u16);
67- assert_eq32(some_u32, some_u32);
68- assert_eq64(some_u64, some_u64);
69- assert_eq256(some_u256, some_u256);
70-
71- assert_none8(None);
72- assert_none16(None);
73- assert_none32(None);
74- assert_none64(None);
75- assert_none128(None);
76- assert_none256(None);
77- }, false => {
78- match if_test_this_function(1, flag) {
79- true => assert_eq8(1, 2),
80- false => (),
81- };
82-
83- match if_test_this_function(2, flag) {
84- true => assert_eq16(1, 2),
85- false => (),
86- };
87-
88- match if_test_this_function(3, flag) {
89- true => assert_eq32(1, 2),
90- false => (),
91- };
92-
93- match if_test_this_function(4, flag) {
94- true => assert_eq64(1, 2),
95- false => (),
96- };
97-
98- match if_test_this_function(5, flag) {
99- true => assert_eq256(1, 2),
100- false => (),
101- };
102-
103- match if_test_this_function(6, flag) {
104- true => assert_none8(Some(some_u8)),
105- false => (),
106- };
107-
108- match if_test_this_function(7, flag) {
109- true => assert_none16(Some(some_u16)),
110- false => (),
111- };
112-
113- match if_test_this_function(8, flag) {
114- true => assert_none32(Some(some_u32)),
115- false => (),
116- };
117-
118- match if_test_this_function(9, flag) {
119- true => assert_none64(Some(some_u64)),
120- false => (),
121- };
122-
123- match if_test_this_function(10, flag) {
124- true => assert_none128(Some(some_u128)),
125- false => (),
126- };
127-
128- match if_test_this_function(11, flag) {
129- true => assert_none256(Some(some_u256)),
130- false => (),
131- };
132- }
133- }
146+ assert_none_256(first_arg_u256);
147+ },
148+ false => (),
149+ };
134150}
0 commit comments