| const assert = require('assert'); |
| |
| // a function for testing numbers |
| function variadic_sum(...args) { |
| let answer = 0; |
| for(var i=0; i<args.length; i++) { |
| answer += args[i]; |
| } |
| return answer; |
| } |
| |
| exports.variadic_sum_u8 = variadic_sum; |
| exports.variadic_sum_u16 = variadic_sum; |
| exports.variadic_sum_u32 = variadic_sum; |
| exports.variadic_sum_u64 = variadic_sum; |
| exports.variadic_sum_i8 = variadic_sum; |
| exports.variadic_sum_i16 = variadic_sum; |
| exports.variadic_sum_i32 = variadic_sum; |
| exports.variadic_sum_i64 = variadic_sum; |
| exports.variadic_sum_f32 = variadic_sum; |
| exports.variadic_sum_f64 = variadic_sum; |
| exports.variadic_sum_rest_vec = variadic_sum; |
| |
| // a function for testing nullable numbers |
| function variadic_sum_opt(...args) { |
| let answer = 0; |
| for(var i=0; i<args.length; i++) { |
| if(args[i] != null) { |
| answer += args[i]; |
| } |
| } |
| return answer; |
| } |
| |
| exports.variadic_sum_opt = variadic_sum_opt; |
| |
| // a function for testing strings |
| function variadic_concat(...args) { |
| let answer = ""; |
| for(var i=0; i<args.length; i++) { |
| answer = `${answer}${args[i]}`; |
| } |
| return answer; |
| } |
| |
| exports.variadic_concat_str = variadic_concat; |
| exports.variadic_concat_string = variadic_concat; |
| |
| // a test that takes any type of arguments (for testing JsValue). |
| function variadic_compare_pairs(...args) { |
| assert(args.length % 2 == 0, "args must be sequence of pairs"); |
| for(var i=0; i<args.length; i++) { |
| const first = args[i++]; |
| const second = args[i]; |
| assert.equal(first, second); |
| } |
| } |
| |
| exports.variadic_compare_pairs = variadic_compare_pairs; |