2025-09-02 17:12:51 +09:00
|
|
|
use nyash_rust::grammar::engine;
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
|
fn grammar_sub_mul_div_rules_exist_and_basic_cases() {
|
|
|
|
|
let eng = engine::get();
|
|
|
|
|
|
|
|
|
|
// Sub
|
|
|
|
|
assert!(!eng.sub_rules().is_empty(), "sub rules should not be empty");
|
2025-09-16 23:49:36 +09:00
|
|
|
assert!(
|
|
|
|
|
eng.decide_sub_result("Integer", "Integer").is_some(),
|
|
|
|
|
"sub i64+i64 should be defined"
|
|
|
|
|
);
|
2025-09-02 17:12:51 +09:00
|
|
|
|
|
|
|
|
// Mul
|
|
|
|
|
assert!(!eng.mul_rules().is_empty(), "mul rules should not be empty");
|
2025-09-16 23:49:36 +09:00
|
|
|
assert!(
|
|
|
|
|
eng.decide_mul_result("Integer", "Integer").is_some(),
|
|
|
|
|
"mul i64*i64 should be defined"
|
|
|
|
|
);
|
2025-09-02 17:12:51 +09:00
|
|
|
|
|
|
|
|
// Div
|
|
|
|
|
assert!(!eng.div_rules().is_empty(), "div rules should not be empty");
|
2025-09-16 23:49:36 +09:00
|
|
|
assert!(
|
|
|
|
|
eng.decide_div_result("Integer", "Integer").is_some(),
|
|
|
|
|
"div i64/i64 should be defined"
|
|
|
|
|
);
|
2025-09-02 17:12:51 +09:00
|
|
|
}
|