use blvm_consensus::*;
use blvm_consensus::script::*;
#[test]
fn test_eval_script_simple() {
let script = vec![0x51, 0x52]; let result = eval_script(&script).unwrap();
assert_eq!(result.len(), 2);
assert_eq!(result[0], vec![1]);
assert_eq!(result[1], vec![2]);
}
#[test]
fn test_eval_script_overflow() {
let mut script = Vec::new();
for _ in 0..=MAX_STACK_SIZE {
script.push(0x51); }
let result = eval_script(&script);
assert!(result.is_err());
}
#[test]
fn test_verify_script_simple() {
let script_sig = vec![0x51]; let script_pubkey = vec![0x51];
let result = verify_script(&script_sig, &script_pubkey, None, 0).unwrap();
assert!(result == true || result == false);
}
#[test]
fn test_verify_script_with_witness() {
let script_sig = vec![0x51]; let script_pubkey = vec![0x51]; let witness = Some(vec![vec![0x52]]);
let result = verify_script(&script_sig, &script_pubkey, witness.as_ref(), 0).unwrap();
assert!(result == true || result == false);
}
#[test]
fn test_verify_script_empty() {
let script_sig = vec![];
let script_pubkey = vec![];
let result = verify_script(&script_sig, &script_pubkey, None, 0).unwrap();
assert!(result == true || result == false);
}
#[test]
fn test_verify_script_large_scripts() {
let mut script_sig = Vec::new();
let mut script_pubkey = Vec::new();
for _ in 0..=MAX_SCRIPT_SIZE {
script_sig.push(0x51);
script_pubkey.push(0x51);
}
let result = verify_script(&script_sig, &script_pubkey, None, 0);
assert!(result.is_err());
}