a gleam implementation of a CS assignment originally written in cpp
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: add tests for verse parsing

+59 -13
-13
test/bible_search_gleam_test.gleam
··· 1 - import gleeunit 2 - 3 - pub fn main() -> Nil { 4 - gleeunit.main() 5 - } 6 - 7 - // gleeunit test functions end in `_test` 8 - pub fn hello_world_test() { 9 - let name = "Joe" 10 - let greeting = "Hello, " <> name <> "!" 11 - 12 - assert greeting == "Hello, Joe!" 13 - }
+59
test/bible_search_test.gleam
··· 1 + import bible_search 2 + import gleeunit 3 + 4 + pub fn main() -> Nil { 5 + gleeunit.main() 6 + } 7 + 8 + // gleeunit test functions end in `_test` 9 + pub fn parse_reference_test() { 10 + let ref = bible_search.parse_reference("FIRST KINGS 10 10") 11 + let expected_ref = 12 + Ok(bible_search.Reference(book: "FIRST KINGS", chapter: 10, verse: 10)) 13 + 14 + assert Ok(ref) == Ok(expected_ref) 15 + } 16 + 17 + pub fn parse_reference_single_word_book_test() { 18 + let ref = bible_search.parse_reference("GENESIS 1 1") 19 + let expected_ref = 20 + Ok(bible_search.Reference(book: "GENESIS", chapter: 1, verse: 1)) 21 + 22 + assert Ok(ref) == Ok(expected_ref) 23 + } 24 + 25 + pub fn parse_reference_invalid_chapter_test() { 26 + let ref = bible_search.parse_reference("GENESIS abc 1") 27 + let expected_error = Error("Invalid chapter: abc") 28 + 29 + assert ref == expected_error 30 + } 31 + 32 + pub fn parse_reference_invalid_verse_test() { 33 + let ref = bible_search.parse_reference("GENESIS 1 xyz") 34 + let expected_error = Error("Invalid verse: xyz") 35 + 36 + assert ref == expected_error 37 + } 38 + 39 + pub fn parse_reference_too_few_parts_test() { 40 + let ref = bible_search.parse_reference("GENESIS 1") 41 + let expected_error = Error("invalid parse") 42 + 43 + assert ref == expected_error 44 + } 45 + 46 + pub fn parse_reference_too_many_parts_test() { 47 + let ref = bible_search.parse_reference("SONG OF SOLOMON 1 1") 48 + let expected_error = Error("invalid parse") 49 + 50 + assert ref == expected_error 51 + } 52 + 53 + pub fn parse_reference_lowercase_book_test() { 54 + let ref = bible_search.parse_reference("genesis 1 1") 55 + let expected_ref = 56 + Ok(bible_search.Reference(book: "GENESIS", chapter: 1, verse: 1)) 57 + 58 + assert Ok(ref) == Ok(expected_ref) 59 + }