Functional Problem Solving (CSC 151 2014F) : EBoards

CSC151.01 2014F, Class 13: Testing Your Procedures, Revisited


Overview

Preliminaries

Admin

Upcoming Work

Extra Credit Opportunities

Academic

Peer Support

Miscellaneous

Questions

Using testing to assess candidate solutions

A problem in testing

Our code

#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"))))