108 lines
No EOL
2.3 KiB
Rust
108 lines
No EOL
2.3 KiB
Rust
|
|
|
|
|
|
#![allow(unused_imports)]
|
|
#![allow(unused_variables)]
|
|
#![allow(dead_code)]
|
|
|
|
use rhai::Dynamic;
|
|
|
|
|
|
use rhai::Dynamic;
|
|
|
|
#[test]
|
|
|
|
|
|
fn test_unique_integers() {
|
|
let mut arr = Array::new();
|
|
arr.push(Dynamic::from(1_i64));
|
|
arr.push(Dynamic::from(2_i64));
|
|
arr.push(Dynamic::from(2_i64));
|
|
arr.push(Dynamic::from(3_i64));
|
|
arr.push(Dynamic::from(3_i64));
|
|
arr.push(Dynamic::from(3_i64));
|
|
arr.push(Dynamic::from(4_i64));
|
|
|
|
let result = unique_array(arr);
|
|
assert_eq!(result.len(), 4);
|
|
}
|
|
|
|
#[test]
|
|
|
|
|
|
fn test_unique_strings() {
|
|
let mut arr = Array::new();
|
|
arr.push(Dynamic::from("Alice"));
|
|
arr.push(Dynamic::from("Bob"));
|
|
arr.push(Dynamic::from("Alice"));
|
|
arr.push(Dynamic::from("Charlie"));
|
|
|
|
let result = unique_array(arr);
|
|
assert_eq!(result.len(), 3);
|
|
}
|
|
|
|
#[test]
|
|
|
|
|
|
fn test_unique_preserves_order() {
|
|
let mut arr = Array::new();
|
|
arr.push(Dynamic::from("C"));
|
|
arr.push(Dynamic::from("A"));
|
|
arr.push(Dynamic::from("B"));
|
|
arr.push(Dynamic::from("A"));
|
|
arr.push(Dynamic::from("C"));
|
|
|
|
let result = unique_array(arr);
|
|
assert_eq!(result.len(), 3);
|
|
assert_eq!(result[0].to_string(), "C");
|
|
assert_eq!(result[1].to_string(), "A");
|
|
assert_eq!(result[2].to_string(), "B");
|
|
}
|
|
|
|
#[test]
|
|
|
|
|
|
fn test_unique_empty_array() {
|
|
let arr = Array::new();
|
|
let result = unique_array(arr);
|
|
assert!(result.is_empty());
|
|
}
|
|
|
|
#[test]
|
|
|
|
|
|
fn test_unique_single_element() {
|
|
let mut arr = Array::new();
|
|
arr.push(Dynamic::from(42_i64));
|
|
|
|
let result = unique_array(arr);
|
|
assert_eq!(result.len(), 1);
|
|
}
|
|
|
|
#[test]
|
|
|
|
|
|
fn test_unique_all_same() {
|
|
let mut arr = Array::new();
|
|
arr.push(Dynamic::from(1_i64));
|
|
arr.push(Dynamic::from(1_i64));
|
|
arr.push(Dynamic::from(1_i64));
|
|
|
|
let result = unique_array(arr);
|
|
assert_eq!(result.len(), 1);
|
|
}
|
|
|
|
#[test]
|
|
|
|
|
|
fn test_unique_mixed_types() {
|
|
let mut arr = Array::new();
|
|
arr.push(Dynamic::from(1_i64));
|
|
arr.push(Dynamic::from("1"));
|
|
arr.push(Dynamic::from(1_i64));
|
|
|
|
let result = unique_array(arr);
|
|
|
|
|
|
assert!(result.len() >= 1 && result.len() <= 2);
|
|
} |