Functional Problem Solving (CSC 151 2014F) : EBoards
Primary: [Front Door] [Schedule] - [Academic Honesty] [Disabilities] [Email] - [FAQ] [Teaching & Learning] [Grading] [Rubric] - [Calendar]
Current: [Assignment] [EBoard] [Lab] [Outline] [Reading]
Sections: [Assignments] [EBoards] [Examples] [Handouts] [Labs] [Outlines] [Readings]
Reference: [Setup] [VM] [Errors] - [Functions A-Z] [Functions By Topic] - [Racket] [Scheme Report (R5RS)] [R6RS] [TSPL4]
Related Courses: [Davis (2013F)] [Rebelsky (2014S)] [Weinman (2014F)]
Misc: [Submit Questions] - [SamR] [Glimmer Labs] [CS@Grinnell] [Grinnell] - [Issue Tracker (Course)]
Overview
#lang racket
(require rackunit)
(require rackunit/text-ui)
(require triangles/tri-2200)
(define triangle-tests
(test-suite
"Testing classify-triangle"
(test-case "not quite an isosceles triangle"
(check-exn exn:fail? (lambda () (classify-triangle 2 2 5))))
(test-case "not quite scalene"
(check-exn exn:fail? (lambda () (classify-triangle 80 60 1))))
(test-case "zero side length"
(check-exn exn:fail? (lambda () (classify-triangle 0 0 0))))
(test-case "an isosceles triangle"
(check-equal? (classify-triangle 2.0 2.0 3.0) "isosceles"))
(test-case "an isosceles triangle"
(check-equal? (classify-triangle 2.0 3.0 2.0) "isosceles"))
(test-case "an isosceles triangle"
(check-equal? (classify-triangle 3.0 2.0 2.0) "isosceles"))
(test-case "a really big equilateral triangle"
(check-equal? (classify-triangle (expt 2 1000) (expt 2 1000) (expt 2 1000)) "equilateral"))
(test-case "a really small equilateral triangle"
(check-equal? (classify-triangle .0000000001 .0000000001 .0000000001 ) "equilateral"))
(test-case "a scalene triangle"
(check-equal? (classify-triangle 2 3 4) "scalene"))
(test-case "unit side length equilateral triangle"
(check-equal? (classify-triangle 1 1 1) "equilateral"))))