const DECIMAL_ADD_REFS: &[(&str, &str, i128, i128, &str)] = &[
("1.5", "2.5", 4, 1, "dec_add_0"),
("0.1", "0.9", 1, 1, "dec_add_1"),
("10.0", "20.0", 30, 1, "dec_add_2"),
("0.5", "0.5", 1, 1, "dec_add_3"),
("99.9", "0.1", 100, 1, "dec_add_4"),
("0.0", "1.5", 3, 2, "dec_add_5"),
("100.0", "0.0", 100, 1, "dec_add_6"),
("1.25", "2.75", 4, 1, "dec_add_7"),
("0.01", "0.99", 1, 1, "dec_add_8"),
("99.99", "0.01", 100, 1, "dec_add_9"),
("0.50", "0.50", 1, 1, "dec_add_10"),
("0.001", "0.999", 1, 1, "dec_add_11"),
("1.500", "2.500", 4, 1, "dec_add_12"),
("0.125", "0.875", 1, 1, "dec_add_13"),
("1.5", "0.25", 7, 4, "dec_add_14"),
("0.1", "0.01", 11, 100, "dec_add_15"),
("10.0", "0.001", 10001, 1000, "dec_add_16"),
];
const DECIMAL_SUB_REFS: &[(&str, &str, i128, i128, &str)] = &[
("2.5", "1.5", 1, 1, "dec_sub_0"),
("1.0", "0.5", 1, 2, "dec_sub_1"),
("10.0", "3.0", 7, 1, "dec_sub_2"),
("0.5", "0.5", 0, 1, "dec_sub_3"),
("100.0", "99.9", 1, 10, "dec_sub_4"),
("0.0", "0.0", 0, 1, "dec_sub_5"),
("5.5", "2.5", 3, 1, "dec_sub_6"),
("4.00", "1.25", 11, 4, "dec_sub_7"),
("0.99", "0.01", 49, 50, "dec_sub_8"),
("100.00", "0.01", 9999, 100, "dec_sub_9"),
("1.000", "0.001", 999, 1000, "dec_sub_10"),
("0.500", "0.125", 3, 8, "dec_sub_11"),
("1.5", "0.25", 5, 4, "dec_sub_12"),
("0.1", "0.01", 9, 100, "dec_sub_13"),
];
const DECIMAL_MUL_REFS: &[(&str, &str, i128, i128, &str)] = &[
("1.5", "2.5", 15, 4, "dec_mul_0"),
("0.1", "0.1", 1, 100, "dec_mul_1"),
("10.0", "3.0", 30, 1, "dec_mul_2"),
("0.5", "0.5", 1, 4, "dec_mul_3"),
("100.0", "0.1", 10, 1, "dec_mul_4"),
("0.0", "1.5", 0, 1, "dec_mul_5"),
("1.25", "4.00", 5, 1, "dec_mul_6"),
("0.10", "0.10", 1, 100, "dec_mul_7"),
("99.99", "1.00", 9999, 100, "dec_mul_8"),
("0.5", "0.25", 1, 8, "dec_mul_9"),
("2.0", "3.0", 6, 1, "dec_mul_10"),
("0.5", "2.0", 1, 1, "dec_mul_11"),
];
const DECIMAL_DIV_REFS: &[(&str, &str, i128, i128, &str)] = &[
("7.5", "2.5", 3, 1, "dec_div_0"),
("1.0", "2.0", 1, 2, "dec_div_1"),
("10.0", "4.0", 5, 2, "dec_div_2"),
("0.5", "0.5", 1, 1, "dec_div_3"),
("100.0", "10.0", 10, 1, "dec_div_4"),
("9.0", "3.0", 3, 1, "dec_div_5"),
("1.25", "0.25", 5, 1, "dec_div_6"),
("0.50", "0.10", 5, 1, "dec_div_7"),
("1.5", "2.5", 3, 5, "dec_div_8"),
("0.5", "0.25", 2, 1, "dec_div_9"),
("2.0", "1.0", 2, 1, "dec_div_10"),
("6.0", "3.0", 2, 1, "dec_div_11"),
];
const SYMBOLIC_ADD_REFS: &[(&str, &str, i128, i128, &str)] = &[
("1/3", "2/3", 1, 1, "sym_add_0"),
("1/3", "2/7", 13, 21, "sym_add_1"),
("1/2", "1/2", 1, 1, "sym_add_2"),
("1/6", "1/6", 1, 3, "sym_add_3"),
("3/4", "1/4", 1, 1, "sym_add_4"),
("1/3", "1/6", 1, 2, "sym_add_5"),
("0/1", "1/7", 1, 7, "sym_add_6"),
("5/8", "3/8", 1, 1, "sym_add_7"),
("1/10", "1/5", 3, 10, "sym_add_8"),
("7/11", "3/11", 10, 11, "sym_add_9"),
("1/100", "1/200", 3, 200, "sym_add_10"),
("99/100", "1/100", 1, 1, "sym_add_11"),
("22/7", "1/7", 23, 7, "sym_add_12"),
("1/997", "1/991", 1988, 988027, "sym_add_13"),
("1/13", "1/17", 30, 221, "sym_add_14"),
("100/3", "1/3", 101, 3, "sym_add_15"),
("1/1000", "1/1000", 1, 500, "sym_add_16"),
("3/5", "2/5", 1, 1, "sym_add_17"),
("7/12", "5/12", 1, 1, "sym_add_18"),
];
const SYMBOLIC_SUB_REFS: &[(&str, &str, i128, i128, &str)] = &[
("2/3", "1/3", 1, 3, "sym_sub_0"),
("1/2", "1/3", 1, 6, "sym_sub_1"),
("1/3", "1/3", 0, 1, "sym_sub_2"),
("3/4", "1/4", 1, 2, "sym_sub_3"),
("5/6", "1/6", 2, 3, "sym_sub_4"),
("1/7", "2/7", -1, 7, "sym_sub_5"),
("1/3", "1/6", 1, 6, "sym_sub_6"),
("0/1", "1/7", -1, 7, "sym_sub_7"),
("22/7", "1/7", 3, 1, "sym_sub_8"),
("1/997", "1/991", -6, 988027, "sym_sub_9"),
("100/3", "1/3", 33, 1, "sym_sub_10"),
("1/2", "1/4", 1, 4, "sym_sub_11"),
("7/8", "3/8", 1, 2, "sym_sub_12"),
("5/6", "5/6", 0, 1, "sym_sub_13"),
("11/13", "7/13", 4, 13, "sym_sub_14"),
];
const SYMBOLIC_MUL_REFS: &[(&str, &str, i128, i128, &str)] = &[
("1/3", "3/1", 1, 1, "sym_mul_0"),
("1/2", "1/2", 1, 4, "sym_mul_1"),
("2/3", "3/4", 1, 2, "sym_mul_2"),
("1/3", "1/3", 1, 9, "sym_mul_3"),
("1/7", "7/1", 1, 1, "sym_mul_4"),
("0/1", "1/3", 0, 1, "sym_mul_5"),
("5/6", "6/5", 1, 1, "sym_mul_6"),
("1/10", "1/10", 1, 100, "sym_mul_7"),
("22/7", "7/22", 1, 1, "sym_mul_8"),
("3/4", "4/5", 3, 5, "sym_mul_9"),
("1/100", "100/1", 1, 1, "sym_mul_10"),
("2/3", "3/2", 1, 1, "sym_mul_11"),
("7/11", "11/13", 7, 13, "sym_mul_12"),
("1/2", "2/1", 1, 1, "sym_mul_13"),
("3/7", "7/3", 1, 1, "sym_mul_14"),
];
const SYMBOLIC_DIV_REFS: &[(&str, &str, i128, i128, &str)] = &[
("1/3", "2/7", 7, 6, "sym_div_0"),
("1/2", "1/2", 1, 1, "sym_div_1"),
("3/4", "1/4", 3, 1, "sym_div_2"),
("1/3", "1/3", 1, 1, "sym_div_3"),
("1/7", "1/7", 1, 1, "sym_div_4"),
("5/6", "5/6", 1, 1, "sym_div_5"),
("22/7", "11/7", 2, 1, "sym_div_6"),
("1/10", "1/5", 1, 2, "sym_div_7"),
("3/4", "3/8", 2, 1, "sym_div_8"),
("100/3", "10/3", 10, 1, "sym_div_9"),
("1/2", "3/4", 2, 3, "sym_div_10"),
("7/11", "7/13", 13, 11, "sym_div_11"),
("1/2", "2/1", 1, 4, "sym_div_12"),
("3/7", "7/3", 9, 49, "sym_div_13"),
];
const CROSS_ADD_REFS: &[(&str, &str, i128, i128, &str)] = &[
("7", "1.5", 17, 2, "cross_add_0"),
("0", "0.5", 1, 2, "cross_add_1"),
("100", "0.01", 10001, 100, "cross_add_2"),
("1", "0.1", 11, 10, "cross_add_3"),
("7", "1/3", 22, 3, "cross_add_4"),
("0", "1/7", 1, 7, "cross_add_5"),
("10", "1/10", 101, 10, "cross_add_6"),
("3", "2/3", 11, 3, "cross_add_7"),
("1.5", "1/3", 11, 6, "cross_add_8"),
("0.5", "1/6", 2, 3, "cross_add_9"),
("2.5", "1/4", 11, 4, "cross_add_10"),
];
const CROSS_SUB_REFS: &[(&str, &str, i128, i128, &str)] = &[
("7", "1.5", 11, 2, "cross_sub_0"),
("100", "0.01", 9999, 100, "cross_sub_1"),
("7", "1/3", 20, 3, "cross_sub_2"),
("10", "1/10", 99, 10, "cross_sub_3"),
("1.5", "1/3", 7, 6, "cross_sub_4"),
("0.5", "1/6", 1, 3, "cross_sub_5"),
("3", "2/3", 7, 3, "cross_sub_6"),
];
const CROSS_MUL_REFS: &[(&str, &str, i128, i128, &str)] = &[
("7", "1.5", 21, 2, "cross_mul_0"),
("0", "0.5", 0, 1, "cross_mul_1"),
("100", "0.01", 1, 1, "cross_mul_2"),
("2", "0.25", 1, 2, "cross_mul_3"),
("9", "1/3", 3, 1, "cross_mul_4"),
("14", "1/7", 2, 1, "cross_mul_5"),
("6", "2/3", 4, 1, "cross_mul_6"),
("0.5", "1/3", 1, 6, "cross_mul_7"),
("1.5", "2/3", 1, 1, "cross_mul_8"),
];
const CROSS_DIV_REFS: &[(&str, &str, i128, i128, &str)] = &[
("7", "1.5", 14, 3, "cross_div_0"),
("100", "0.5", 200, 1, "cross_div_1"),
("1", "0.25", 4, 1, "cross_div_2"),
("10", "1/10", 100, 1, "cross_div_3"),
("1.5", "1/3", 9, 2, "cross_div_4"),
("0.5", "1/6", 3, 1, "cross_div_5"),
("9", "1/3", 27, 1, "cross_div_6"),
("6", "2/3", 9, 1, "cross_div_7"),
];