Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
37
Task/Test-a-function/Lasso/test-a-function.lasso
Normal file
37
Task/Test-a-function/Lasso/test-a-function.lasso
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
// Taken from the Lasso entry in Palindrome page
|
||||
define isPalindrome(text::string) => {
|
||||
|
||||
local(_text = string(#text)) // need to make copy to get rid of reference issues
|
||||
|
||||
#_text -> replace(regexp(`(?:$|\W)+`), -ignorecase)
|
||||
|
||||
local(reversed = string(#_text))
|
||||
#reversed -> reverse
|
||||
|
||||
return #_text == #reversed
|
||||
}
|
||||
|
||||
// The tests
|
||||
describe(::isPalindrome) => {
|
||||
it(`throws an error when not passed a string`) => {
|
||||
expect->error =>{
|
||||
isPalindrome(43)
|
||||
}
|
||||
}
|
||||
|
||||
it(`returns true if the string is the same forward and backwords`) => {
|
||||
expect(isPalindrome('abba'))
|
||||
}
|
||||
|
||||
it(`returns false if the string is different forward and backwords`) => {
|
||||
expect(not isPalindrome('aab'))
|
||||
}
|
||||
|
||||
it(`ignores spaces and punctuation`) => {
|
||||
expect(isPalindrome(`Madam, I'm Adam`))
|
||||
}
|
||||
}
|
||||
|
||||
// Run the tests and get the summary
|
||||
// (This normally isn't in the code as the test suite is run via command-line.)
|
||||
lspec->stop
|
||||
Loading…
Add table
Add a link
Reference in a new issue