///|
test {
let map1 : @sorted_map.SortedMap[String, Int] = @sorted_map.new()
let map2 = @sorted_map.singleton("a", 1)
@test.assert_eq(map1.length(), 0)
@test.assert_eq(map2.length(), 1)
}///|
test {
let map = @sorted_map.SortedMap([("a", 1), ("b", 2), ("c", 3)])
@test.assert_eq(map.values().collect(), [1, 2, 3])
@test.assert_eq(map.keys_as_iter().collect(), ["a", "b", "c"])
}///|
test {
let map : @sorted_map.SortedMap[String, Int] = @sorted_map.new()
let map = map.add("a", 1)
@test.assert_eq(map.get("a"), Some(1))
}///|
test {
let map = @sorted_map.SortedMap([("a", 1), ("b", 2), ("c", 3)])
let map = map.remove("a")
@test.assert_eq(map.get("a"), None)
}///|
test {
let map = @sorted_map.SortedMap([("a", 1), ("b", 2), ("c", 3)])
@test.assert_eq(map.contains("a"), true)
@test.assert_eq(map.contains("d"), false)
}///|
test {
let map = @sorted_map.SortedMap([("a", 1), ("b", 2), ("c", 3)])
@test.assert_eq(map.length(), 3)
}///|
test {
let map : @sorted_map.SortedMap[String, Int] = @sorted_map.new()
@test.assert_eq(map.is_empty(), true)
}///|
test {
let map = @sorted_map.SortedMap([("a", 1), ("b", 2), ("c", 3)])
let arr = []
map.each((k, v) => arr.push("key:\{k}, value:\{v}"))
@test.assert_eq(arr, ["key:a, value:1", "key:b, value:2", "key:c, value:3"])
let arr = []
map.eachi((i, k, v) => arr.push("index:\{i}, key:\{k}, value:\{v}"))
@test.assert_eq(arr, [
"index:0, key:a, value:1", "index:1, key:b, value:2", "index:2, key:c, value:3",
])
}///|
test {
let map = @sorted_map.SortedMap([("a", 1), ("b", 2), ("c", 3)])
let map = map.map((_, v) => v + 1)
@test.assert_eq(map.values().collect(), [2, 3, 4])
let map = map.map((_k, v) => v + 1)
@test.assert_eq(map.values().collect(), [3, 4, 5])
}///|
test {
let map = @sorted_map.SortedMap([("a", 1), ("b", 2), ("c", 3)])
@test.assert_eq(map.fold((acc, _, v) => acc + v, init=0), 6) // 6
@test.assert_eq(
map.fold((acc, k, v) => acc + k + v.to_string(), init=""),
"a1b2c3",
) // "a1b2c3"
@test.assert_eq(
map.rev_fold((acc, k, v) => acc + k + v.to_string(), init=""),
"c3b2a1",
) // "c3b2a1"
}///|
test {
let map = @sorted_map.SortedMap([("a", 1), ("b", 2), ("c", 3)])
let map = map.filter((_, v) => v > 1)
@test.assert_eq(map.values().collect(), [2, 3])
@test.assert_eq(map.keys_as_iter().collect(), ["b", "c"])
let map = map.filter((k, v) => k > "a" && v > 1)
@test.assert_eq(map.values().collect(), [2, 3])
@test.assert_eq(map.keys_as_iter().collect(), ["b", "c"])
}///|
test {
let map = @sorted_map.SortedMap([("a", 1), ("b", 2), ("c", 3)])
let values = map.values()
@test.assert_eq(values.collect(), [1, 2, 3])
}///|
test {
let map = @sorted_map.SortedMap([("a", 1), ("b", 2), ("c", 3)])
let keys = map.keys_as_iter() // ["a", "b", "c"]
@test.assert_eq(keys.collect(), ["a", "b", "c"])
}///|
test {
let map = @sorted_map.SortedMap([("a", 1), ("b", 2), ("c", 3)])
let keys = map.rev_keys().collect()
@test.assert_eq(keys, ["c", "b", "a"])
}///|
test {
let map = @sorted_map.SortedMap([("a", 1), ("b", 2), ("c", 3)])
let values = map.rev_values().collect()
@test.assert_eq(values, [3, 2, 1])
}type SortedMap[K, V]test {
let map1 = @sorted_map.SortedMap([(3, "three"), (8, "eight"), (1, "one")])
let map2 = map1.add(2, "two").remove(3)
@test.assert_eq(map2.get(2), Some("two"))
let map3 = map2.add(2, "updated")
@test.assert_eq(map2.get(3), None)
@test.assert_eq(map3.get(3), None)
@test.assert_eq(map3.get(2), Some("updated"))
}test {
let m = @sorted_map.SortedMap([(3, "c"), (1, "a"), (2, "b")])
@test.assert_eq(m.get(1), Some("a"))
@test.assert_eq(m.get(3), Some("c"))
}#deprecated("Use @immut/sorted_map.SortedMap([...]) instead")
#as_free_fn(of, deprecated="Use @immut/sorted_map.SortedMap([...]) instead")
#alias(of, deprecated="Use @immut/sorted_map.SortedMap([...]) instead")
#as_free_fn(deprecated="Use @immut/sorted_map.SortedMap([...]) instead")
fn[K : Compare + Eq, V] SortedMap::from_array(array : ArrayView[(K, V)]) -> SortedMap[K, V]#as_free_fn
fn[V : FromJson] SortedMap::from_json(json : Json) -> SortedMap[String, V] raise JsonDecodeErrortest {
let map1 = @sorted_map.SortedMap([(1, "a"), (2, "b")])
let map2 = @sorted_map.SortedMap([(2, "c"), (3, "d")])
let merged = map1.merge(map2)
debug_inspect(merged.get(1), content="Some(\"a\")")
debug_inspect(merged.get(2), content="Some(\"c\")")
debug_inspect(merged.get(3), content="Some(\"d\")")
}test {
let map = @sorted_map.SortedMap([
(1, "a"),
(2, "b"),
(3, "c"),
(4, "d"),
(5, "e"),
])
let result = []
for k, v in map.range(low=2, high=4) {
result.push((k, v))
}
@test.assert_eq(result, [(2, "b"), (3, "c"), (4, "d")])
}test {
let map = @sorted_map.SortedMap([("a", 1), ("b", 2), ("c", 3)])
let keys = map.rev_keys().collect()
@test.assert_eq(keys, ["c", "b", "a"])
} let map = @sorted_map.SortedMap([("a", 1), ("b", 2), ("c", 3)])
let values = map.rev_values().collect()
@test.assert_eq(values, [3, 2, 1])Install
Installed by default