open Core.Std open OUnit2 open Bob let ae exp got _test_ctxt = assert_equal ~printer:String.to_string exp got let tests = ["something">:: ae "Whatever." (response_for "Tom-ay-to, tom-aaaah-to."); "shouts">:: ae "Whoa, chill out!" (response_for "WATCH OUT!"); "questions">:: ae "Sure." (response_for "Does this cryogenic chamber make me look fat?"); "forceful talking">:: ae "Whatever." (response_for "Let's go make out behind the gym!"); "acronyms">:: ae "Whatever." (response_for "It's ok if you don't want to go to the DMV."); "forceful questions">:: ae "Whoa, chill out!" (response_for "WHAT THE HELL WERE YOU THINKING?"); "shouting with special characters">:: ae "Whoa, chill out!" (response_for "ZOMG THE %^*@#$(*^ ZOMBIES ARE COMING!!11!!1!"); "shouting numbers">:: ae "Whoa, chill out!" (response_for "1, 2, 3, GO!"); "statement containing question mark">:: ae "Whatever." (response_for "Ending with ? means a question."); "silence">:: ae "Fine. Be that way!" (response_for ""); "prolonged silence">:: ae "Fine. Be that way!" (response_for " "); "non-letters with question">:: ae "Sure." (response_for ":) ?"); "multiple line questons">:: ae "Whatever." (response_for "\nDoes this cryogenic chamber make me look fat? \nno"); "other whitespace">:: (* No unicode whitespace as OCaml Core doesn't seem to handle Unicode. * Not it seems does it see ASCII 11 (\v) as whitespace. *) ae "Fine. Be that way!" (response_for "\n\r \t"); "only numbers">:: ae "Whatever." (response_for "1, 2, 3"); "question with only numbers">:: ae "Sure." (response_for "4?"); ] let () = run_test_tt_main ("bob tests" >::: tests)