aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJulian Schurhammer <julian.schurhammer@gmail.com>2022-08-20 13:20:27 +1200
committerLouis Pilfold <louis@lpil.uk>2023-03-13 10:49:34 +0000
commit5cc6996e77909390970e1c519177dd27a2416314 (patch)
tree7b95e554c88f1563069e3a02e32139b445ac18a7 /test
parenta3e856bcfc32382c0001bbf51c1f4e14acc21bda (diff)
downloadgleam_stdlib-5cc6996e77909390970e1c519177dd27a2416314.tar.gz
gleam_stdlib-5cc6996e77909390970e1c519177dd27a2416314.zip
js map: allow entries in array nodes
to reduce the number of nodes created
Diffstat (limited to 'test')
-rw-r--r--test/gleam/map_test.gleam37
1 files changed, 37 insertions, 0 deletions
diff --git a/test/gleam/map_test.gleam b/test/gleam/map_test.gleam
index 9b3fcfe..1c9f340 100644
--- a/test/gleam/map_test.gleam
+++ b/test/gleam/map_test.gleam
@@ -299,3 +299,40 @@ pub fn map_as_key_test() {
|> map.get(a)
|> should.equal(Ok("a3"))
}
+
+pub fn large_n_test() {
+ let n = 10000
+ let l = range(0, n, [])
+
+ let m = list_to_map(l)
+ list.map(l, fn(i) { should.equal(map.get(m, i), Ok(i)) })
+
+ let m = grow_and_shrink_map(n, 0)
+ list.map(l, fn(i) { should.equal(map.get(m, i), Error(Nil)) })
+}
+
+pub fn size_test() {
+ let n = 1000
+ let m = list_to_map(range(0, n, []))
+ map.size(m)
+ |> should.equal(n)
+
+ let m = grow_and_shrink_map(n, n / 2)
+ map.size(m)
+ |> should.equal(n / 2)
+
+ let m =
+ grow_and_shrink_map(n, 0)
+ |> map.delete(0)
+ map.size(m)
+ |> should.equal(0)
+
+ let m = list_to_map(range(0, 18, []))
+
+ map.insert(m, 1, 99)
+ |> map.size()
+ |> should.equal(18)
+ map.insert(m, 2, 99)
+ |> map.size()
+ |> should.equal(18)
+}