dodb.cr/spec/test-fifo.cr

20 lines
693 B
Crystal
Raw Normal View History

2024-05-25 02:22:52 +02:00
require "spec"
2024-05-25 03:41:00 +02:00
require "../src/fifo.cr"
2024-05-25 02:22:52 +02:00
describe "FIFO" do
it "add and remove values" do
fifo = FIFO(Int32).new 3 # Only 3 allowed entries.
2024-05-25 03:41:00 +02:00
(fifo << 1).should be_nil # there is still room in the fifo
(fifo << 2).should be_nil # there is still room in the fifo
2024-05-25 02:22:52 +02:00
(fifo << 3).should be_nil # last entry without exceeding the allowed size
(fifo << 4).should eq 1 # -> 1 (least recently used data)
2024-05-25 03:41:00 +02:00
(fifo << 4).should be_nil # -> nil (already in the fifo)
(fifo << 2).should be_nil # -> nil (already in the fifo)
2024-05-25 02:22:52 +02:00
(fifo << 5).should eq 3 # -> 3 (least recently used data)
fifo.data.should eq([5, 2, 4] of Int32)
2024-05-25 02:36:43 +02:00
fifo.delete 2
fifo.data.should eq([5, 4] of Int32)
2024-05-25 02:22:52 +02:00
end
end