Created
January 24, 2013 01:10
-
-
Save flypiggy/4616598 to your computer and use it in GitHub Desktop.
change the assignment name then "$sml test.sml" to make test
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
use "assignment1.sml"; | |
(* assert for test *) | |
fun assert (e: bool, message: string) = | |
let val prefix = "Testing [" ^ message ^ "]" | |
in if e then print( prefix ^ "----PASS\n") | |
else print(prefix ^ "----FAIL\n") | |
end | |
(* factroies for Q1-Q5 *) | |
val date1 = (2012,12,12) | |
val date2 = (2012,12,13) | |
val date3 = (2013,12,13) | |
val date4 = (2011,1,30); | |
(* test for Q1 *) | |
assert ( is_older(date1, date2), "is_older"); | |
assert ( is_older(date1, date1)=false, "is_older"); | |
assert ( is_older(date3, date1)=false, "is_older"); | |
assert ( is_older(date4, date1), "is_older"); | |
(* test for Q2 *) | |
assert ( number_in_month([date1, date2, date3, date4], 1) = 1 | |
,"number_in_month"); | |
assert ( number_in_month([date1, date2, date3, date4], 12) = 3 | |
,"number_in_month"); | |
assert ( number_in_month([date1, date2, date3, date4], 0) = 0 | |
,"number_in_month"); | |
(* test for Q3 *) | |
assert ( number_in_months([date1, date2, date3, date4], [1,12]) = 4 | |
,"number_in_months"); | |
assert ( number_in_months([date1, date2, date3, date4], []) = 0 | |
,"number_in_months"); | |
assert ( number_in_months([date1, date2, date3, date4], [12]) = 3 | |
,"number_in_months"); | |
(* test for Q4 *) | |
assert ( dates_in_month([date1, date2, date3, date4], 1) = [date4], | |
"dates_in_month"); | |
assert ( dates_in_month([date1, date2, date3, date4], 3) = [], | |
"dates_in_month"); | |
assert ( dates_in_month([], 12) =[], "dates_in_month"); | |
assert ( dates_in_month([date1, date2, date3, date4], 12) = | |
[date1, date2, date3], "dates_in_month"); | |
(* test for Q5 *) | |
assert ( dates_in_months([date1, date2, date3, date4], [1, 12]) = | |
[ date4, date1, date2, date3], "dates_in_months"); | |
(* test for Q6 *) | |
assert ( get_nth(["aaa","bbb","ccc"], 1) = "aaa", "get_nth"); | |
assert ( get_nth(["aaa","bbb","ccc"], 2) = "bbb", "get_nth"); | |
(* test for Q7 *) | |
assert ( date_to_string date1 = "December 12, 2012", "date_to_string"); | |
(* test for Q8 *) | |
assert ( number_before_reaching_sum (10, [1, 2, 3, 4]) = 3, "number_before_reaching_sum"); | |
assert ( number_before_reaching_sum (100, [1, 2, 30, 4, 5, 80, 1, 2]) = 5, "number_before_reaching_sum"); | |
(* test for Q9 *) | |
assert ( what_month(31) = 1, "what_month"); | |
assert ( what_month(32) = 2, "what_month"); | |
assert ( what_month(365) = 12, "what_month"); | |
(* test for Q10 *) | |
assert ( month_range (1, 2) = [1,1], "month_range"); | |
assert ( month_range (2, 2) = [1], "month_range"); | |
assert ( month_range (2, 1) = [], "month_range"); | |
assert ( month_range (29, 32) = [1, 1, 1, 2], "month_range"); | |
(* test for Q11 *) | |
assert ( oldest ([date1, date2, date3]) = SOME date1, "oldest"); | |
assert ( oldest ([date1, date2, date3, date4]) = SOME date4, "oldest"); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment