misskey-plugins/arr-equal.ais

52 lines
968 B
Text
Raw Normal View History

2025-02-08 15:34:43 +00:00
@arr_equal(arr1, arr2) {
if arr1.len != arr2.len {
return false
}
for let i,arr1.len {
if arr1[i] != arr2[i] {
return false
}
}
return true
}
// TESTS
let unit_tests = []
@deftest(test_name, test_func) {
unit_tests.push({name: test_name, func: test_func})
}
deftest("arr_equal pos", @() {
return arr_equal([1, 2, 3], [1, 2, 3])
})
deftest("arr_equal neg element", @() {
return !arr_equal([1, 2, 3], [1, 2, 4])
})
deftest("arr_equal neg size", @() {
return !arr_equal([1, 2, 3], [1, 2])
})
@run_all_tests() {
print("Running unit tests...")
var fails = 0
each let test, unit_tests {
if !test.func() {
fails += 1
print(`Test {test.name} failed.`)
}
}
if fails == 0 {
print(`All {unit_tests.len} tests successful!`)
return true
}
print(`{fails}/{unit_tests.len} tests failed.`)
Mk:dialog("Load error", "An error occurred while loading the plugin. Please contact the script author.", "error")
return false
}
run_all_tests()