From c5aef349d9765088d74651ea69447b36eb16325c Mon Sep 17 00:00:00 2001 From: vil02 Date: Thu, 8 Feb 2024 20:45:22 +0100 Subject: [PATCH 1/2] tests: add missing for `median_heap` --- .spec/data_structures/median_heap_spec.lua | 47 ++++++++++++++++++---- 1 file changed, 40 insertions(+), 7 deletions(-) diff --git a/.spec/data_structures/median_heap_spec.lua b/.spec/data_structures/median_heap_spec.lua index dc60b8c..48c054b 100644 --- a/.spec/data_structures/median_heap_spec.lua +++ b/.spec/data_structures/median_heap_spec.lua @@ -1,10 +1,43 @@ describe("Median heap", function() local median_heap = require("data_structures.median_heap") - local heap = median_heap.new() - for i = 1, 100 do - heap:push(i) - end - assert.equal(50, heap:top()) - assert.equal(50, heap:pop()) - assert.equal(51, heap:pop()) + it("constructs the correct heap when inserting sorted elements", function() + local heap = median_heap.new() + for i = 1, 100 do + heap:push(i) + end + assert.equal(100, heap:size()) + assert.equal(50, heap:top()) + assert.equal(50, heap:pop()) + assert.equal(51, heap:pop()) + end) + it("constructs the correct heap when inserting sorted elements in reverese", function() + local heap = median_heap.new() + for i = 100, 1, -1 do + heap:push(i) + end + assert.equal(100, heap:size()) + assert.equal(50, heap:top()) + assert.equal(50, heap:pop()) + assert.equal(51, heap:pop()) + end) + it("constructs the correct heap when inserting some elements", function() + local heap = median_heap.new() + heap:push(3) + heap:push(2) + heap:push(10) + heap:push(1) + heap:push(7) + assert.equal(3, heap:top()) + assert.equal(5, heap:size()) + assert.equal(3, heap:pop()) + assert.equal(4, heap:size()) + assert.equal(2, heap:pop()) + assert.equal(3, heap:size()) + assert.equal(7, heap:pop()) + assert.equal(2, heap:size()) + assert.equal(1, heap:pop()) + assert.equal(1, heap:size()) + assert.equal(10, heap:pop()) + assert.equal(0, heap:size()) + end) end) From bd78a6ee058ca4b3a88821804c88909538fb9c09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lars=20M=C3=BCller?= <34514239+appgurueu@users.noreply.github.com> Date: Thu, 8 Feb 2024 23:46:01 +0100 Subject: [PATCH 2/2] Minor improvements --- .spec/data_structures/median_heap_spec.lua | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.spec/data_structures/median_heap_spec.lua b/.spec/data_structures/median_heap_spec.lua index 48c054b..7bedd12 100644 --- a/.spec/data_structures/median_heap_spec.lua +++ b/.spec/data_structures/median_heap_spec.lua @@ -10,7 +10,7 @@ describe("Median heap", function() assert.equal(50, heap:pop()) assert.equal(51, heap:pop()) end) - it("constructs the correct heap when inserting sorted elements in reverese", function() + it("constructs the correct heap when inserting sorted elements in reverse", function() local heap = median_heap.new() for i = 100, 1, -1 do heap:push(i) @@ -20,22 +20,27 @@ describe("Median heap", function() assert.equal(50, heap:pop()) assert.equal(51, heap:pop()) end) - it("constructs the correct heap when inserting some elements", function() + it("works when inserting and popping some elements", function() local heap = median_heap.new() heap:push(3) heap:push(2) heap:push(10) heap:push(1) heap:push(7) + -- Numbers in heap: 1, 2, 3, 7, 10 assert.equal(3, heap:top()) assert.equal(5, heap:size()) assert.equal(3, heap:pop()) + -- Numbers in heap: 1, 2, 7, 10 assert.equal(4, heap:size()) assert.equal(2, heap:pop()) + -- Numbers in heap: 1, 7, 10 assert.equal(3, heap:size()) assert.equal(7, heap:pop()) + -- Numbers in heap: 1, 10 assert.equal(2, heap:size()) assert.equal(1, heap:pop()) + -- Numbers in heap: 10 assert.equal(1, heap:size()) assert.equal(10, heap:pop()) assert.equal(0, heap:size())