Lines Matching +full:1 +full:a

5  * this file except in compliance with the License.  You can obtain a copy
29 int a, b; member
32 } test_ints[] = { /* + - * / % /r -a -b |a||b| */
33 { 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
34 { -1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
35 { 1, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
36 { -1, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
41 { INT_MAX, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
42 { INT_MAX, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
43 { INT_MAX, 4, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
44 { INT_MAX - 3 , 4, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0 },
45 { INT_MIN, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0 },
46 { 1, INT_MIN, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1 },
47 { INT_MIN, 2, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0 },
48 { 2, INT_MIN, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1 },
49 { INT_MIN, -1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0 },
50 { INT_MAX, INT_MIN, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1 },
51 { INT_MIN, INT_MAX, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0 },
52 { 3, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0 },
58 const int a = test_ints[n].a, b = test_ints[n].b; in test_int_ops() local
61 r = safe_add_int(a, b, &err); in test_int_ops()
63 || (!err && !TEST_int_eq(r, a + b))) in test_int_ops()
67 r = safe_sub_int(a, b, &err); in test_int_ops()
69 || (!err && !TEST_int_eq(r, a - b))) in test_int_ops()
73 r = safe_mul_int(a, b, &err); in test_int_ops()
75 || (!err && !TEST_int_eq(r, a * b))) in test_int_ops()
79 r = safe_div_int(a, b, &err); in test_int_ops()
81 || (!err && !TEST_int_eq(r, a / b))) in test_int_ops()
85 r = safe_mod_int(a, b, &err); in test_int_ops()
87 || (!err && !TEST_int_eq(r, a % b))) in test_int_ops()
91 r = safe_div_round_up_int(a, b, &err); in test_int_ops()
94 s = safe_mod_int(a, b, &err); in test_int_ops()
95 s = safe_add_int(safe_div_int(a, b, &err), s != 0, &err); in test_int_ops()
100 r = safe_neg_int(a, &err); in test_int_ops()
102 || (!err && !TEST_int_eq(r, -a))) in test_int_ops()
112 r = safe_abs_int(a, &err); in test_int_ops()
114 || (!err && !TEST_int_eq(r, a < 0 ? -a : a))) in test_int_ops()
122 return 1; in test_int_ops()
124 TEST_info("a = %d b = %d r = %d err = %d", a, b, r, err); in test_int_ops()
129 unsigned int a, b; member
132 { 3, 1, 0, 0, 0, 0, 0, 0 },
133 { 1, 3, 0, 1, 0, 0, 0, 0 },
134 { UINT_MAX, 1, 1, 0, 0, 0, 0, 0 },
135 { UINT_MAX, 2, 1, 0, 1, 0, 0, 0 },
136 { UINT_MAX, 16, 1, 0, 1, 0, 0, 0 },
137 { UINT_MAX - 13, 16, 1, 0, 1, 0, 0, 0 },
138 { 1, UINT_MAX, 1, 1, 0, 0, 0, 0 },
139 { 2, UINT_MAX, 1, 1, 1, 0, 0, 0 },
140 { UINT_MAX, 0, 0, 0, 0, 1, 1, 1 },
147 const unsigned int a = test_uints[n].a, b = test_uints[n].b; in test_uint_ops() local
150 r = safe_add_uint(a, b, &err); in test_uint_ops()
152 || (!err && !TEST_uint_eq(r, a + b))) in test_uint_ops()
156 r = safe_sub_uint(a, b, &err); in test_uint_ops()
158 || (!err && !TEST_uint_eq(r, a - b))) in test_uint_ops()
162 r = safe_mul_uint(a, b, &err); in test_uint_ops()
164 || (!err && !TEST_uint_eq(r, a * b))) in test_uint_ops()
168 r = safe_div_uint(a, b, &err); in test_uint_ops()
170 || (!err && !TEST_uint_eq(r, a / b))) in test_uint_ops()
174 r = safe_mod_uint(a, b, &err); in test_uint_ops()
176 || (!err && !TEST_uint_eq(r, a % b))) in test_uint_ops()
180 r = safe_div_round_up_uint(a, b, &err); in test_uint_ops()
182 || (!err && !TEST_uint_eq(r, a / b + (a % b != 0)))) in test_uint_ops()
186 r = safe_neg_uint(a, &err); in test_uint_ops()
187 if (!TEST_int_eq(err, a != 0) || (!err && !TEST_uint_eq(r, 0))) in test_uint_ops()
196 r = safe_abs_uint(a, &err); in test_uint_ops()
197 if (!TEST_int_eq(err, 0) || !TEST_uint_eq(r, a)) in test_uint_ops()
204 return 1; in test_uint_ops()
206 TEST_info("a = %u b = %u r = %u err = %d", a, b, r, err); in test_uint_ops()
211 size_t a, b; member
214 { 3, 1, 0, 0, 0, 0, 0, 0 },
215 { 1, 3, 0, 1, 0, 0, 0, 0 },
217 { SIZE_MAX, 1, 1, 0, 0, 0, 0, 0 },
218 { SIZE_MAX, 2, 1, 0, 1, 0, 0, 0 },
219 { SIZE_MAX, 8, 1, 0, 1, 0, 0, 0 },
220 { SIZE_MAX - 3, 8, 1, 0, 1, 0, 0, 0 },
221 { 1, SIZE_MAX, 1, 1, 0, 0, 0, 0 },
222 { 2, SIZE_MAX, 1, 1, 1, 0, 0, 0 },
223 { 11, 0, 0, 0, 0, 1, 1, 1 },
230 const size_t a = test_size_ts[n].a, b = test_size_ts[n].b; in test_size_t_ops() local
233 r = safe_add_size_t(a, b, &err); in test_size_t_ops()
235 || (!err && !TEST_size_t_eq(r, a + b))) in test_size_t_ops()
239 r = safe_sub_size_t(a, b, &err); in test_size_t_ops()
241 || (!err && !TEST_size_t_eq(r, a - b))) in test_size_t_ops()
245 r = safe_mul_size_t(a, b, &err); in test_size_t_ops()
247 || (!err && !TEST_size_t_eq(r, a * b))) in test_size_t_ops()
251 r = safe_div_size_t(a, b, &err); in test_size_t_ops()
253 || (!err && !TEST_size_t_eq(r, a / b))) in test_size_t_ops()
257 r = safe_mod_size_t(a, b, &err); in test_size_t_ops()
259 || (!err && !TEST_size_t_eq(r, a % b))) in test_size_t_ops()
263 r = safe_div_round_up_size_t(a, b, &err); in test_size_t_ops()
265 || (!err && !TEST_size_t_eq(r, a / b + (a % b != 0)))) in test_size_t_ops()
269 r = safe_neg_size_t(a, &err); in test_size_t_ops()
270 if (!TEST_int_eq(err, a != 0) || (!err && !TEST_size_t_eq(r, 0))) in test_size_t_ops()
279 r = safe_abs_size_t(a, &err); in test_size_t_ops()
280 if (!TEST_int_eq(err, 0) || !TEST_size_t_eq(r, a)) in test_size_t_ops()
287 return 1; in test_size_t_ops()
289 TEST_info("a = %zu b = %zu r = %zu err = %d", a, b, r, err); in test_size_t_ops()
294 int a, b, c; member
297 { 3, 1, 2, 0 },
298 { 1, 3, 2, 0 },
299 { -3, 1, 2, 0 },
300 { 1, 3, -2, 0 },
302 { INT_MIN, INT_MIN, INT_MAX, 1 },
305 { 8, INT_MAX, 4, 1 },
306 { INT_MAX, 8, 4, 1 },
307 { INT_MIN, 2, 4, 1 },
308 { 8, INT_MIN, 4, 1 },
309 { INT_MIN, 8, 4, 1 },
310 { 3, 4, 0, 1 },
317 const int a = test_muldiv_ints[n].a; in test_int_muldiv() local
321 r = safe_muldiv_int(a, b, c, &err); in test_int_muldiv()
323 real = (int)((int64_t)a * (int64_t)b / (int64_t)c); in test_int_muldiv()
326 TEST_info("%d * %d / %d r = %d err = %d", a, b, c, r, err); in test_int_muldiv()
329 return 1; in test_int_muldiv()
333 unsigned int a, b, c; member
336 { 3, 1, 2, 0 },
337 { 1, 3, 2, 0 },
340 { 8, UINT_MAX, 4, 1 },
341 { UINT_MAX, 8, 4, 1 },
342 { 3, 4, 0, 1 },
349 const unsigned int a = test_muldiv_uints[n].a; in test_uint_muldiv() local
353 r = safe_muldiv_uint(a, b, c, &err); in test_uint_muldiv()
355 real = (unsigned int)((uint64_t)a * (uint64_t)b / (uint64_t)c); in test_uint_muldiv()
358 TEST_info("%u * %u / %u r = %u err = %d", a, b, c, r, err); in test_uint_muldiv()
361 return 1; in test_uint_muldiv()
371 return 1; in setup_tests()