-
-
Notifications
You must be signed in to change notification settings - Fork 22
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
27 additions
and
111 deletions.
There are no files selected for viewing
138 changes: 27 additions & 111 deletions
138
exercises/practice/binary-search/tst/binary-search/binary-search.cut
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,160 +1,76 @@ | ||
*** | ||
* notice that the return index differs from COBOL index numbering | ||
*** | ||
|
||
TestCase "finds a value in an array with one element" | ||
MOVE 1 TO WS-COUNT | ||
INITIALIZE WS-ARRAY-TABLE | ||
MOVE 6 TO WS-ARRAY(1) | ||
MOVE "6" TO WS-ARRAY | ||
MOVE 6 TO WS-ITEM | ||
PERFORM BINARY-SEARCH | ||
EXPECT WS-RESULT = 0 | ||
|
||
EXPECT WS-RESULT = 1 | ||
|
||
TestCase "finds a value in the middle of an array" | ||
MOVE 7 TO WS-COUNT | ||
INITIALIZE WS-ARRAY-TABLE | ||
MOVE 1 TO WS-ARRAY(1) | ||
MOVE 3 TO WS-ARRAY(2) | ||
MOVE 4 TO WS-ARRAY(3) | ||
MOVE 6 TO WS-ARRAY(4) | ||
MOVE 8 TO WS-ARRAY(5) | ||
MOVE 9 TO WS-ARRAY(6) | ||
MOVE 11 TO WS-ARRAY(7) | ||
MOVE "1,3,4,6,8,9,11" TO WS-ARRAY | ||
MOVE 6 TO WS-ITEM | ||
PERFORM BINARY-SEARCH | ||
EXPECT WS-RESULT = 3 | ||
EXPECT WS-RESULT = 4 | ||
|
||
|
||
TestCase "finds a value at the beginning of an array" | ||
MOVE 7 TO WS-COUNT | ||
INITIALIZE WS-ARRAY-TABLE | ||
MOVE 1 TO WS-ARRAY(1) | ||
MOVE 3 TO WS-ARRAY(2) | ||
MOVE 4 TO WS-ARRAY(3) | ||
MOVE 6 TO WS-ARRAY(4) | ||
MOVE 8 TO WS-ARRAY(5) | ||
MOVE 9 TO WS-ARRAY(6) | ||
MOVE 11 TO WS-ARRAY(7) | ||
TestCase "finds a value in the beginning of an array" | ||
MOVE "1,3,4,6,8,9,11" TO WS-ARRAY | ||
MOVE 1 TO WS-ITEM | ||
PERFORM BINARY-SEARCH | ||
EXPECT WS-RESULT = 0 | ||
EXPECT WS-RESULT = 1 | ||
|
||
|
||
TestCase "finds a value at the end of an array" | ||
MOVE 7 TO WS-COUNT | ||
INITIALIZE WS-ARRAY-TABLE | ||
MOVE 1 TO WS-ARRAY(1) | ||
MOVE 3 TO WS-ARRAY(2) | ||
MOVE 4 TO WS-ARRAY(3) | ||
MOVE 6 TO WS-ARRAY(4) | ||
MOVE 8 TO WS-ARRAY(5) | ||
MOVE 9 TO WS-ARRAY(6) | ||
MOVE 11 TO WS-ARRAY(7) | ||
MOVE "1,3,4,6,8,9,11" TO WS-ARRAY | ||
MOVE 11 TO WS-ITEM | ||
PERFORM BINARY-SEARCH | ||
EXPECT WS-RESULT = 6 | ||
EXPECT WS-RESULT = 7 | ||
|
||
|
||
TestCase "finds a value in an array of odd length" | ||
MOVE 13 TO WS-COUNT | ||
INITIALIZE WS-ARRAY-TABLE | ||
MOVE 1 TO WS-ARRAY(1) | ||
MOVE 3 TO WS-ARRAY(2) | ||
MOVE 5 TO WS-ARRAY(3) | ||
MOVE 8 TO WS-ARRAY(4) | ||
MOVE 13 TO WS-ARRAY(5) | ||
MOVE 21 TO WS-ARRAY(6) | ||
MOVE 34 TO WS-ARRAY(7) | ||
MOVE 55 TO WS-ARRAY(8) | ||
MOVE 89 TO WS-ARRAY(9) | ||
MOVE 144 TO WS-ARRAY(10) | ||
MOVE 233 TO WS-ARRAY(11) | ||
MOVE 377 TO WS-ARRAY(12) | ||
MOVE 634 TO WS-ARRAY(13) | ||
MOVE "1,3,5,8,13,21,34,55,89,144,233,377,634" TO WS-ARRAY | ||
MOVE 144 TO WS-ITEM | ||
PERFORM BINARY-SEARCH | ||
EXPECT WS-RESULT = 9 | ||
EXPECT WS-RESULT = 10 | ||
|
||
|
||
TestCase "finds a value in an array of even length" | ||
MOVE 12 TO WS-COUNT | ||
INITIALIZE WS-ARRAY-TABLE | ||
MOVE 1 TO WS-ARRAY(1) | ||
MOVE 3 TO WS-ARRAY(2) | ||
MOVE 5 TO WS-ARRAY(3) | ||
MOVE 8 TO WS-ARRAY(4) | ||
MOVE 13 TO WS-ARRAY(5) | ||
MOVE 21 TO WS-ARRAY(6) | ||
MOVE 34 TO WS-ARRAY(7) | ||
MOVE 55 TO WS-ARRAY(8) | ||
MOVE 89 TO WS-ARRAY(9) | ||
MOVE 144 TO WS-ARRAY(10) | ||
MOVE 233 TO WS-ARRAY(11) | ||
MOVE 377 TO WS-ARRAY(12) | ||
MOVE "1,3,5,8,13,21,34,55,89,144,233,377,634" TO WS-ARRAY | ||
MOVE 21 TO WS-ITEM | ||
PERFORM BINARY-SEARCH | ||
EXPECT WS-RESULT = 5 | ||
|
||
|
||
TestCase "identifies that a value is not included in the array" | ||
MOVE 7 TO WS-COUNT | ||
INITIALIZE WS-ARRAY-TABLE | ||
MOVE 1 TO WS-ARRAY(1) | ||
MOVE 3 TO WS-ARRAY(2) | ||
MOVE 4 TO WS-ARRAY(3) | ||
MOVE 6 TO WS-ARRAY(4) | ||
MOVE 8 TO WS-ARRAY(5) | ||
MOVE 9 TO WS-ARRAY(6) | ||
MOVE 11 TO WS-ARRAY(7) | ||
EXPECT WS-RESULT = 6 | ||
|
||
|
||
TestCase "finds a value in an array of even length" | ||
MOVE "1,3,4,6,8,9,11" TO WS-ARRAY | ||
MOVE 7 TO WS-ITEM | ||
PERFORM BINARY-SEARCH | ||
EXPECT WS-ERROR = "value not in array" | ||
|
||
|
||
TestCase "a value smaller than the array's smallest value is not found" | ||
MOVE 7 TO WS-COUNT | ||
INITIALIZE WS-ARRAY-TABLE | ||
MOVE 1 TO WS-ARRAY(1) | ||
MOVE 3 TO WS-ARRAY(2) | ||
MOVE 4 TO WS-ARRAY(3) | ||
MOVE 6 TO WS-ARRAY(4) | ||
MOVE 8 TO WS-ARRAY(5) | ||
MOVE 9 TO WS-ARRAY(6) | ||
MOVE 11 TO WS-ARRAY(7) | ||
MOVE "1,3,4,6,8,9,11" TO WS-ARRAY | ||
MOVE 0 TO WS-ITEM | ||
PERFORM BINARY-SEARCH | ||
EXPECT WS-ERROR = "value not in array" | ||
|
||
|
||
TestCase "a value larger than the array's largest value is not found" | ||
MOVE 7 TO WS-COUNT | ||
INITIALIZE WS-ARRAY-TABLE | ||
MOVE 1 TO WS-ARRAY(1) | ||
MOVE 3 TO WS-ARRAY(2) | ||
MOVE 4 TO WS-ARRAY(3) | ||
MOVE 6 TO WS-ARRAY(4) | ||
MOVE 8 TO WS-ARRAY(5) | ||
MOVE 9 TO WS-ARRAY(6) | ||
MOVE 11 TO WS-ARRAY(7) | ||
MOVE "1,3,4,6,8,9,11" TO WS-ARRAY | ||
MOVE 13 TO WS-ITEM | ||
PERFORM BINARY-SEARCH | ||
EXPECT WS-ERROR = "value not in array" | ||
|
||
|
||
TestCase "nothing is found in an empty array" | ||
MOVE 1 TO WS-COUNT | ||
INITIALIZE WS-ARRAY-TABLE | ||
MOVE 13 TO WS-ITEM | ||
MOVE " " TO WS-ARRAY | ||
MOVE 1 TO WS-ITEM | ||
PERFORM BINARY-SEARCH | ||
EXPECT WS-ERROR = "value not in array" | ||
|
||
|
||
TestCase "nothing is found when the left and right bounds cross" | ||
MOVE 2 TO WS-COUNT | ||
INITIALIZE WS-ARRAY-TABLE | ||
MOVE 1 TO WS-ARRAY(1) | ||
MOVE 2 TO WS-ARRAY(2) | ||
MOVE "1,2" TO WS-ARRAY | ||
MOVE 0 TO WS-ITEM | ||
PERFORM BINARY-SEARCH | ||
EXPECT WS-ERROR = "value not in array" | ||
EXPECT WS-ERROR = "value not in array" | ||
|