131 lines
3.8 KiB
Gleam
131 lines
3.8 KiB
Gleam
import exercism/should
|
|
import exercism/test_runner
|
|
import tracks_on_tracks_on_tracks
|
|
|
|
pub fn main() {
|
|
test_runner.main()
|
|
}
|
|
|
|
pub fn new_list_test() {
|
|
tracks_on_tracks_on_tracks.new_list()
|
|
|> should.equal([])
|
|
}
|
|
|
|
pub fn existing_list_test() {
|
|
tracks_on_tracks_on_tracks.existing_list()
|
|
|> should.equal(["Gleam", "Go", "TypeScript"])
|
|
}
|
|
|
|
pub fn add_language_to_new_list_test() {
|
|
tracks_on_tracks_on_tracks.add_language([], "Elixir")
|
|
|> should.equal(["Elixir"])
|
|
}
|
|
|
|
pub fn add_language_to_existing_list_test() {
|
|
tracks_on_tracks_on_tracks.add_language(["Gleam", "Go", "TypeScript"], "Lua")
|
|
|> should.equal(["Lua", "Gleam", "Go", "TypeScript"])
|
|
}
|
|
|
|
pub fn add_language_to_custom_list_test() {
|
|
tracks_on_tracks_on_tracks.add_language(["Scheme"], "Racket")
|
|
|> should.equal(["Racket", "Scheme"])
|
|
}
|
|
|
|
pub fn count_languages_on_new_list_test() {
|
|
tracks_on_tracks_on_tracks.count_languages(
|
|
tracks_on_tracks_on_tracks.new_list(),
|
|
)
|
|
|> should.equal(0)
|
|
}
|
|
|
|
pub fn count_languages_on_existing_list_test() {
|
|
tracks_on_tracks_on_tracks.count_languages(
|
|
tracks_on_tracks_on_tracks.existing_list(),
|
|
)
|
|
|> should.equal(3)
|
|
}
|
|
|
|
pub fn count_languages_on_custom_list_test() {
|
|
tracks_on_tracks_on_tracks.count_languages(["Python", "JavaScript"])
|
|
|> should.equal(2)
|
|
}
|
|
|
|
pub fn reverse_order_of_new_list_test() {
|
|
tracks_on_tracks_on_tracks.reverse_list(tracks_on_tracks_on_tracks.new_list())
|
|
|> should.equal([])
|
|
}
|
|
|
|
pub fn reverse_order_of_existing_list_test() {
|
|
tracks_on_tracks_on_tracks.reverse_list(
|
|
tracks_on_tracks_on_tracks.existing_list(),
|
|
)
|
|
|> should.equal(["TypeScript", "Go", "Gleam"])
|
|
}
|
|
|
|
pub fn reverse_order_of_custom_list_test() {
|
|
tracks_on_tracks_on_tracks.reverse_list(["Kotlin", "Java", "Scala", "Clojure"])
|
|
|> should.equal(["Clojure", "Scala", "Java", "Kotlin"])
|
|
}
|
|
|
|
pub fn empty_list_is_not_exciting_test() {
|
|
let assert False = tracks_on_tracks_on_tracks.exciting_list([])
|
|
}
|
|
|
|
pub fn singleton_list_with_gleam_is_exciting_test() {
|
|
let assert True = tracks_on_tracks_on_tracks.exciting_list(["Gleam"])
|
|
}
|
|
|
|
pub fn singleton_list_without_gleam_is_not_exciting_test() {
|
|
let assert False = tracks_on_tracks_on_tracks.exciting_list(["Go"])
|
|
}
|
|
|
|
pub fn two_item_list_with_gleam_as_first_item_is_exciting_test() {
|
|
let assert True =
|
|
tracks_on_tracks_on_tracks.exciting_list(["Gleam", "Clojure"])
|
|
}
|
|
|
|
pub fn two_item_list_with_gleam_as_second_item_is_exciting_test() {
|
|
let assert True = tracks_on_tracks_on_tracks.exciting_list(["Raku", "Gleam"])
|
|
}
|
|
|
|
pub fn two_item_list_without_gleam_is_not_exciting_test() {
|
|
let assert False = tracks_on_tracks_on_tracks.exciting_list(["Python", "Go"])
|
|
}
|
|
|
|
pub fn three_item_list_with_gleam_as_first_item_is_exciting_test() {
|
|
let assert True =
|
|
tracks_on_tracks_on_tracks.exciting_list(["Gleam", "Lisp", "Clojure"])
|
|
}
|
|
|
|
pub fn three_item_list_with_gleam_as_second_item_is_exciting_test() {
|
|
let assert True =
|
|
tracks_on_tracks_on_tracks.exciting_list(["Java", "Gleam", "C#"])
|
|
}
|
|
|
|
pub fn three_item_list_with_gleam_as_third_item_is_not_exciting_test() {
|
|
let assert False =
|
|
tracks_on_tracks_on_tracks.exciting_list(["Julia", "Assembly", "Gleam"])
|
|
}
|
|
|
|
pub fn four_item_list_with_gleam_as_first_item_is_exciting_test() {
|
|
let assert True =
|
|
tracks_on_tracks_on_tracks.exciting_list(["Gleam", "C", "C++", "C#"])
|
|
}
|
|
|
|
pub fn four_item_list_with_gleam_as_second_item_is_not_exciting_test() {
|
|
let assert False =
|
|
tracks_on_tracks_on_tracks.exciting_list(["Elm", "Gleam", "C#", "Scheme"])
|
|
}
|
|
|
|
pub fn four_item_list_with_gleam_as_third_item_is_not_exciting_test() {
|
|
let assert False =
|
|
tracks_on_tracks_on_tracks.exciting_list(["Delphi", "D", "Gleam", "Prolog"])
|
|
}
|
|
|
|
pub fn four_item_list_with_gleam_as_fourth_item_is_not_exciting_test() {
|
|
let assert False =
|
|
tracks_on_tracks_on_tracks.exciting_list([
|
|
"Julia", "Assembly", "Crystal", "Gleam",
|
|
])
|
|
}
|