#[cfg(test)] mod tests { #![allow(unused_imports)] use super::*; use rust_dynamic::value::Value; #[test] fn test_cast_float_type() { let v = Value::from(42.0).unwrap(); assert_eq!(v.cast_float().unwrap(), 42.0); } #[test] fn test_cast_int_type() { let v = Value::from(42 as i64).unwrap(); assert_eq!(v.cast_int().unwrap(), 42 as i64); } #[test] fn test_cast_bool_type() { let v = Value::from(true).unwrap(); assert_eq!(v.cast_bool().unwrap(), true); } #[test] fn test_cast_string_type() { let v = Value::from("Hello world").unwrap(); assert_eq!(v.cast_string().unwrap(), "Hello world"); } #[test] fn test_cast_context_type() { let v = Value::named_context("MAIN".to_string()); assert_eq!(v.cast_string().unwrap(), "MAIN"); } #[test] fn test_cast_list_type() { let v = Value::from_list(vec![Value::from(42 as i64).unwrap()]); let l = v.cast_list().unwrap(); let v2 = l[0].cast_int().unwrap(); assert_eq!(v2, 42 as i64); } #[test] fn test_cast_fifo_type() { let mut v = Value::fifo(); v = v.push(Value::from(42 as i64).unwrap()); let v2 = v.pop().unwrap(); assert_eq!(v2.cast_int().unwrap(), 42 as i64); } #[test] fn test_cast_json_type() { let v = Value::json(serde_json::json![42]); let j_value = v.cast_json().unwrap(); assert_eq!(j_value.as_i64().unwrap(), 42 as i64); } #[test] fn test_cast_lambda_type() { let v = Value::to_lambda(vec![Value::from(42 as i64).unwrap()]); let l = v.cast_lambda().unwrap(); let v2 = l[0].cast_int().unwrap(); assert_eq!(v2, 42 as i64); } #[test] fn test_cast_pair_type() { let v = Value::pair(Value::from_int(42 as i64), Value::from_int(43 as i64)); let l = v.cast_pair().unwrap(); let v2 = l[0].cast_int().unwrap(); assert_eq!(v2, 42 as i64); } #[test] fn test_cast_pair_x_type() { let v = Value::pair(Value::from_int(42 as i64), Value::from_int(43 as i64)); let v2 = v.cast_pair_x().unwrap(); assert_eq!(v2.cast_int().unwrap(), 42 as i64); } #[test] fn test_cast_pair_y_type() { let v = Value::pair(Value::from_int(42 as i64), Value::from_int(43 as i64)); let v2 = v.cast_pair_y().unwrap(); assert_eq!(v2.cast_int().unwrap(), 43 as i64); } #[test] fn test_cast_dict_type() { let val = Value::dict() .set("answer".to_string(), Value::from(42 as i64).unwrap()); let d = val.cast_dict().unwrap(); let v2 = d.get("answer").unwrap(); assert_eq!(v2.cast_int().unwrap(), 42 as i64); } #[test] fn test_cast_metrics_type() { let mut val = Value::metrics_n(1); val = val.push(Value::from_float(42.0 as f64)); let m = val.cast_metrics().unwrap(); assert_eq!(m[0].data, 42 as f64); } #[test] fn test_cast_operator_opcode() { let v = Value::operator(42, Value::from(42 as i64).unwrap(), Value::none()); assert_eq!(v.cast_operator_opcode().unwrap(), 42 as i32); } #[test] fn test_cast_operator_opvalue() { let v = Value::operator(42, Value::from(42 as i64).unwrap(), Value::none()); let opval = v.cast_operator_value().unwrap(); assert_eq!(opval.cast_int().unwrap(), 42 as i64); } }