Created
October 10, 2013 12:48
-
-
Save dcorking/6917785 to your computer and use it in GitHub Desktop.
Is this number of "white-box" tests overkill? I see that even with 6 tests, I forgot to test the base case. It is a binary search tree insert function, from Module 6a of the Systematic Program Design MOOC by Gregor Kiczales.
This file contains hidden or 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
(define BST0 false) | |
(define BST1 (make-node 1 "abc" false false)) | |
(define BST4 (make-node 4 "dcj" false (make-node 7 "ruf" false false))) | |
(define BST3 (make-node 3 "ilk" BST1 BST4)) | |
(define BST42 | |
(make-node 42 "ily" | |
(make-node 27 "wit" (make-node 14 "olp" false false) false) | |
false)) | |
(define BST10 (make-node 10 "why" BST3 BST42)) | |
(check-expect (insert 43 "ygh" BST42) ; top-right | |
(make-node 42 "ily" | |
(make-node 27 "wit" | |
(make-node 14 "olp" false false) | |
false) | |
(make-node 43 "ygh" false false))) | |
(check-expect (insert 2 "uvw" BST10) ; left-left-right | |
(make-node 10 "why" | |
(make-node 3 "ilk" | |
(make-node 1 "abc" | |
false | |
(make-node 2 "uvw" false false)) | |
BST4) | |
BST42)) ; | |
(check-expect (insert 37 "ijk" BST10) ; right-left-right | |
(make-node 10 "why" | |
BST3 | |
(make-node 42 "ily" | |
(make-node 27 "wit" | |
(make-node 14 "olp" false false) | |
(make-node 37 "ijk" false false)) | |
false))) | |
(check-expect (insert 2 "uvw" | |
(make-node 3 "ilk" false BST4)) ; top-left | |
(make-node 3 "ilk" | |
(make-node 2 "uvw" false false) | |
BST4)) | |
(check-expect (insert 5 "uvw" ; right-right-left | |
(make-node 3 "ilk" | |
(make-node 1 "abc" false false) | |
(make-node 6 "bcd" | |
false | |
(make-node 7 "ruf" false false)))) | |
(make-node 3 "ilk" | |
(make-node 1 "abc" false false) | |
(make-node 6 "bcd" | |
(make-node 5 "uvw" false false) | |
(make-node 7 "ruf" false false)))) | |
(check-expect (insert 29 "hat" ; right-left-left | |
(make-node 10 "why" | |
BST3 | |
(make-node 42 "ily" | |
(make-node 35 "oxo" false false) | |
(make-node 51 "bui" false false)))) | |
(make-node 10 "why" | |
BST3 | |
(make-node 42 "ily" | |
(make-node 35 "oxo" | |
(make-node 29 "hat" false false) | |
false) | |
(make-node 51 "bui" false false)))) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment