Test a function: Difference between revisions

Content added Content deleted
m (UNIX Shell code had no ending tag)
Line 617: Line 617:
}
}
}</lang>
}</lang>

=={{header|Lasso}}==
The following example uses the [https://bitbucket.org/bfad/lspec/ LSpec Library]:

<lang lasso>// 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</lang>

{{out}}
<pre>....

Finished in 0.157030 seconds
4 tests, 0 failures</pre>


=={{header|Lua}}==
=={{header|Lua}}==
<lang lua>assert( ispalindrome("ABCBA") )
<lang lua>assert( ispalindrome("ABCBA") )