Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion exercises/practice/bob/.meta/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@
},
"blurb": "Bob is a lackadaisical teenager. In conversation, his responses are very limited.",
"source": "Inspired by the 'Deaf Grandma' exercise in Chris Pine's Learn to Program tutorial.",
"source_url": "https://pine.fm/LearnToProgram/?Chapter=06"
"source_url": "https://pine.fm/LearnToProgram/chap_06.html"
}
89 changes: 46 additions & 43 deletions exercises/practice/bob/.meta/tests.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,82 +9,85 @@
# As user-added comments (using the # character) will be removed when this file
# is regenerated, comments can be added via a `comment` key.

[e162fead-606f-437a-a166-d051915cea8e]
description = "stating something"
[8a2e771d-d6f1-4e3f-b6c6-b41495556e37]
description = "asking a question"

[73a966dc-8017-47d6-bb32-cf07d1a5fcd9]
description = "shouting"

[d6c98afd-df35-4806-b55e-2c457c3ab748]
description = "shouting gibberish"
[a5193c61-4a92-4f68-93e2-f554eb385ec6]
description = "forceful question"

[8a2e771d-d6f1-4e3f-b6c6-b41495556e37]
description = "asking a question"
[bc39f7c6-f543-41be-9a43-fd1c2f753fc0]
description = "silence"

[e162fead-606f-437a-a166-d051915cea8e]
description = "stating something"

[81080c62-4e4d-4066-b30a-48d8d76920d9]
description = "asking a numeric question"

[2a02716d-685b-4e2e-a804-2adaf281c01e]
description = "asking gibberish"

[c02f9179-ab16-4aa7-a8dc-940145c385f7]
description = "talking forcefully"
[bb0011c5-cd52-4a5b-8bfb-a87b6283b0e2]
description = "question with no letters"

[153c0e25-9bb5-4ec5-966e-598463658bcd]
description = "using acronyms in regular speech"
[9bfc677d-ea3a-45f2-be44-35bc8fa3753e]
description = "non-letters with question"

[a5193c61-4a92-4f68-93e2-f554eb385ec6]
description = "forceful question"
[8608c508-f7de-4b17-985b-811878b3cf45]
description = "prattling on"

[a20e0c54-2224-4dde-8b10-bd2cdd4f61bc]
description = "shouting numbers"
[05b304d6-f83b-46e7-81e0-4cd3ca647900]
description = "ending with whitespace"

[f7bc4b92-bdff-421e-a238-ae97f230ccac]
description = "no letters"
[66953780-165b-4e7e-8ce3-4bcb80b6385a]
description = "multiple line question"
include = false

[bb0011c5-cd52-4a5b-8bfb-a87b6283b0e2]
description = "question with no letters"
[2c7278ac-f955-4eb4-bf8f-e33eb4116a15]
description = "multiple line question"
reimplements = "66953780-165b-4e7e-8ce3-4bcb80b6385a"

[d6c98afd-df35-4806-b55e-2c457c3ab748]
description = "shouting gibberish"

[3c954328-86fb-4c71-8961-e18d6a5e2517]
description = "shouting a statement containing a question mark"

[a20e0c54-2224-4dde-8b10-bd2cdd4f61bc]
description = "shouting numbers"

[496143c8-1c31-4c01-8a08-88427af85c66]
description = "shouting with special characters"

[e6793c1c-43bd-4b8d-bc11-499aea73925f]
description = "shouting with no exclamation mark"

[aa8097cc-c548-4951-8856-14a404dd236a]
description = "statement containing question mark"

[9bfc677d-ea3a-45f2-be44-35bc8fa3753e]
description = "non-letters with question"

[8608c508-f7de-4b17-985b-811878b3cf45]
description = "prattling on"

[bc39f7c6-f543-41be-9a43-fd1c2f753fc0]
description = "silence"

[d6c47565-372b-4b09-b1dd-c40552b8378b]
description = "prolonged silence"

[4428f28d-4100-4d85-a902-e5a78cb0ecd3]
description = "alternate silence"

[66953780-165b-4e7e-8ce3-4bcb80b6385a]
description = "multiple line question"
include = false
[72bd5ad3-9b2f-4931-a988-dce1f5771de2]
description = "other whitespace"

[5371ef75-d9ea-4103-bcfa-2da973ddec1b]
description = "starting with whitespace"
[c02f9179-ab16-4aa7-a8dc-940145c385f7]
description = "talking forcefully"

[05b304d6-f83b-46e7-81e0-4cd3ca647900]
description = "ending with whitespace"
[153c0e25-9bb5-4ec5-966e-598463658bcd]
description = "using acronyms in regular speech"

[72bd5ad3-9b2f-4931-a988-dce1f5771de2]
description = "other whitespace"
[f7bc4b92-bdff-421e-a238-ae97f230ccac]
description = "no letters"

[aa8097cc-c548-4951-8856-14a404dd236a]
description = "statement containing question mark"

[5371ef75-d9ea-4103-bcfa-2da973ddec1b]
description = "starting with whitespace"

[12983553-8601-46a8-92fa-fcaa3bc4a2a0]
description = "non-question ending with whitespace"

[2c7278ac-f955-4eb4-bf8f-e33eb4116a15]
description = "multiple line question"
reimplements = "66953780-165b-4e7e-8ce3-4bcb80b6385a"
112 changes: 58 additions & 54 deletions exercises/practice/bob/bob_spec.moon
Original file line number Diff line number Diff line change
@@ -1,21 +1,25 @@
Bob = require 'bob'

describe 'bob:', ->
it 'stating something', ->
result = Bob.hey "Tom-ay-to, tom-aaaah-to."
assert.is.equal 'Whatever.', result
it 'asking a question', ->
result = Bob.hey "Does this cryogenic chamber make me look fat?"
assert.is.equal 'Sure.', result

pending 'shouting', ->
result = Bob.hey "WATCH OUT!"
assert.is.equal 'Whoa, chill out!', result

pending 'shouting gibberish', ->
result = Bob.hey "FCECDFCAAB"
assert.is.equal 'Whoa, chill out!', result
pending 'forceful question', ->
result = Bob.hey "WHAT'S GOING ON?"
assert.is.equal "Calm down, I know what I'm doing!", result

pending 'asking a question', ->
result = Bob.hey "Does this cryogenic chamber make me look fat?"
assert.is.equal 'Sure.', result
pending 'silence', ->
result = Bob.hey ""
assert.is.equal 'Fine. Be that way!', result

pending 'stating something', ->
result = Bob.hey "Tom-ay-to, tom-aaaah-to."
assert.is.equal 'Whatever.', result

pending 'asking a numeric question', ->
result = Bob.hey "You are, what, like 15?"
Expand All @@ -25,29 +29,37 @@ describe 'bob:', ->
result = Bob.hey "fffbbcbeab?"
assert.is.equal 'Sure.', result

pending 'talking forcefully', ->
result = Bob.hey "Hi there!"
assert.is.equal 'Whatever.', result
pending 'question with no letters', ->
result = Bob.hey "4?"
assert.is.equal 'Sure.', result

pending 'using acronyms in regular speech', ->
result = Bob.hey "It's OK if you don't want to go work for NASA."
assert.is.equal 'Whatever.', result
pending 'non-letters with question', ->
result = Bob.hey ":) ?"
assert.is.equal 'Sure.', result

pending 'forceful question', ->
result = Bob.hey "WHAT'S GOING ON?"
assert.is.equal "Calm down, I know what I'm doing!", result
pending 'prattling on', ->
result = Bob.hey "Wait! Hang on. Are you going to be OK?"
assert.is.equal 'Sure.', result

pending 'shouting numbers', ->
result = Bob.hey "1, 2, 3 GO!"
pending 'ending with whitespace', ->
result = Bob.hey "Okay if like my spacebar quite a bit? "
assert.is.equal 'Sure.', result

pending 'multiple line question', ->
result = Bob.hey "\nDoes this cryogenic chamber make\n me look fat?"
assert.is.equal 'Sure.', result

pending 'shouting gibberish', ->
result = Bob.hey "FCECDFCAAB"
assert.is.equal 'Whoa, chill out!', result

pending 'no letters', ->
result = Bob.hey "1, 2, 3"
assert.is.equal 'Whatever.', result
pending 'shouting a statement containing a question mark', ->
result = Bob.hey "DO LIONS EAT PEOPLE? AHHHHH."
assert.is.equal 'Whoa, chill out!', result

pending 'question with no letters', ->
result = Bob.hey "4?"
assert.is.equal 'Sure.', result
pending 'shouting numbers', ->
result = Bob.hey "1, 2, 3 GO!"
assert.is.equal 'Whoa, chill out!', result

pending 'shouting with special characters', ->
result = Bob.hey "ZOMG THE %^*@#$(*^ ZOMBIES ARE COMING!!11!!1!"
Expand All @@ -57,22 +69,6 @@ describe 'bob:', ->
result = Bob.hey "I HATE THE DENTIST"
assert.is.equal 'Whoa, chill out!', result

pending 'statement containing question mark', ->
result = Bob.hey "Ending with ? means a question."
assert.is.equal 'Whatever.', result

pending 'non-letters with question', ->
result = Bob.hey ":) ?"
assert.is.equal 'Sure.', result

pending 'prattling on', ->
result = Bob.hey "Wait! Hang on. Are you going to be OK?"
assert.is.equal 'Sure.', result

pending 'silence', ->
result = Bob.hey ""
assert.is.equal 'Fine. Be that way!', result

pending 'prolonged silence', ->
result = Bob.hey " "
assert.is.equal 'Fine. Be that way!', result
Expand All @@ -81,22 +77,30 @@ describe 'bob:', ->
result = Bob.hey "\t\t\t\t\t\t\t\t\t\t"
assert.is.equal 'Fine. Be that way!', result

pending 'starting with whitespace', ->
result = Bob.hey " hmmmmmmm..."
assert.is.equal 'Whatever.', result

pending 'ending with whitespace', ->
result = Bob.hey "Okay if like my spacebar quite a bit? "
assert.is.equal 'Sure.', result

pending 'other whitespace', ->
result = Bob.hey "\n\r \t"
assert.is.equal 'Fine. Be that way!', result

pending 'talking forcefully', ->
result = Bob.hey "Hi there!"
assert.is.equal 'Whatever.', result

pending 'using acronyms in regular speech', ->
result = Bob.hey "It's OK if you don't want to go work for NASA."
assert.is.equal 'Whatever.', result

pending 'no letters', ->
result = Bob.hey "1, 2, 3"
assert.is.equal 'Whatever.', result

pending 'statement containing question mark', ->
result = Bob.hey "Ending with ? means a question."
assert.is.equal 'Whatever.', result

pending 'starting with whitespace', ->
result = Bob.hey " hmmmmmmm..."
assert.is.equal 'Whatever.', result

pending 'non-question ending with whitespace', ->
result = Bob.hey "This is a statement ending with whitespace "
assert.is.equal 'Whatever.', result

pending 'multiple line question', ->
result = Bob.hey "\nDoes this cryogenic chamber make\n me look fat?"
assert.is.equal 'Sure.', result
Loading