public
anonymous / test_binary_search.hs
Created

  • Download Gist
test_binary_search.hs
Haskell
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
import Test.HUnit
import JoeBinarySearch
-- Note:
-- JoeBinarySearch.binary_search :: (Ord a) => [a] -> a -> Maybe Int
 
assertions = [
([1], 1, (Just 0)),
([1, 3], 1, (Just 0)),
([1, 3, 4], 4, (Just 2)),
([1,2,4,6,8,9,12,15,17,20], 17, (Just 8)),
([1,2,4,6,8,9,12,15,17,20], 20, (Just 9)),
("hello", 'l', (Just 2)),
([0.0, 1.5, 3.0], 3.0, (Just 2)),
([], 1, Nothing),
([1,3], 2, Nothing),
([1,4,6,8,9,12,15,17,20], 2, Nothing),
([1,4,6,8,9,12,15,17,20], 100, Nothing),
([1,4,6,8,9,12,15,17,20], (-100), Nothing)]
 
test_list = TestList test_cases
where
test_cases = map test_func assertions
test_func (lst, input, expected) = TestCase $ assert_equal' ( binary_search lst input ) expected
assert_equal' = assertEqual "should equal"
 
main :: IO ()
main = do
runTestTT test_list
print "DONE"

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.