import dllist import gleam/dict import startest pub fn main() -> Nil { startest.run(startest.default_config()) } pub fn new_tests() { startest.describe("new instance", [ startest.it("terminated list", fn() { assert dllist.new() == dllist.DLList(1, 0, dict.from_list([])) }), startest.it("cyclic list", fn() { assert dllist.new_cyclic() == dllist.CyclicList(1, 0, dict.from_list([])) }), ]) } pub fn is_empty_tests() { startest.describe("is_emtpy", [ startest.it("terminated list", fn() { assert dllist.is_empty(dllist.new()) assert !dllist.is_empty(dllist.new() |> dllist.insert(1)) }), startest.it("cyclic list", fn() { assert dllist.is_empty(dllist.new_cyclic()) assert !dllist.is_empty(dllist.new_cyclic() |> dllist.insert(1)) }), ]) } pub fn from_list_tests() { startest.describe("from_list", [ startest.it("terminated list", fn() { assert dllist.is_empty(dllist.from_list([])) assert !dllist.is_empty(dllist.from_list([1])) assert dllist.from_list([1]) |> dllist.get == Ok(1) assert dllist.from_list([1, 2, 3, 4]) |> dllist.get == Ok(4) assert dllist.from_list([1]) |> dllist.to_list == [1] assert dllist.from_list([1, 2, 3, 4]) |> dllist.to_list == [1, 2, 3, 4] }), startest.it("cyclic list", fn() { assert dllist.is_empty(dllist.from_list_cyclic([])) assert !dllist.is_empty(dllist.from_list_cyclic([1])) assert dllist.from_list_cyclic([1]) |> dllist.get == Ok(1) assert dllist.from_list_cyclic([1, 2, 3, 4]) |> dllist.get == Ok(4) assert dllist.from_list_cyclic([1]) |> dllist.to_list == [1] assert dllist.from_list_cyclic([1, 2, 3, 4]) |> dllist.to_list == [4, 1, 2, 3] }), ]) }