Skip to content

Commit 150d229

Browse files
committed
test: implement tests for queue and utils
1 parent c46c568 commit 150d229

File tree

2 files changed

+64
-0
lines changed

2 files changed

+64
-0
lines changed

lua/tests/test_queue.lua

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
local Queue = require 'assistant.algos.queue'
2+
local test = require 'mini.test'
3+
local T = test.new_set()
4+
5+
T['new() creates an empty queue'] = function()
6+
local q = Queue.new()
7+
test.expect.equality(q:empty(), true)
8+
test.expect.equality(q:size(), 0)
9+
end
10+
11+
T['push() adds elements to the queue'] = function()
12+
local q = Queue.new()
13+
q:push(10)
14+
q:push(20)
15+
test.expect.equality(q:size(), 2)
16+
test.expect.equality(q:top(), 10)
17+
end
18+
19+
T['pop() removes elements in FIFO order'] = function()
20+
local q = Queue.new()
21+
q:push 'a'
22+
q:push 'b'
23+
test.expect.equality(q:pop(), 'a')
24+
test.expect.equality(q:pop(), 'b')
25+
test.expect.equality(q:empty(), true)
26+
end
27+
28+
T['top() returns the first element without removing it'] = function()
29+
local q = Queue.new()
30+
q:push 'x'
31+
test.expect.equality(q:top(), 'x')
32+
test.expect.equality(q:size(), 1)
33+
end
34+
35+
return T

lua/tests/test_utils.lua

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
local test = require 'mini.test'
2+
local utils = require 'assistant.utils'
3+
4+
local T = test.new_set()
5+
6+
T['to_snake_case'] = function()
7+
local camel_case_to_snake = {
8+
{ input = 'camelCase', expected = 'camel_case' },
9+
{ input = 'PascalCase', expected = 'pascal_case' },
10+
{ input = 'snake_case', expected = 'snake_case' },
11+
{ input = 'already_Snake_Case', expected = 'already_snake_case' },
12+
{ input = 'MixOfALLFormats123HTML', expected = 'mix_of_all_formats_123_html' },
13+
{ input = 'HTMLParser', expected = 'html_parser' },
14+
{ input = 'NASA', expected = 'nasa' },
15+
{ input = 'snakeCaseWith123Numbers', expected = 'snake_case_with_123_numbers' },
16+
{ input = ' trimmed String ', expected = 'trimmed_string' },
17+
{ input = 'with multiple spaces', expected = 'with_multiple_spaces' },
18+
{ input = '', expected = '' },
19+
{ input = '12345', expected = '12345' },
20+
{ input = 'This__Is__Weird', expected = 'this_is_weird' },
21+
{ input = 'hello@world!', expected = 'helloworld' },
22+
}
23+
24+
for _, case in ipairs(camel_case_to_snake) do
25+
test.expect.equality(utils.to_snake_case(case.input), case.expected)
26+
end
27+
end
28+
29+
return T

0 commit comments

Comments
 (0)