diff --git a/exercises/practice/binary-search/tst/binary-search/binary-search.cut b/exercises/practice/binary-search/tst/binary-search/binary-search.cut index 39054edd..bcc06074 100644 --- a/exercises/practice/binary-search/tst/binary-search/binary-search.cut +++ b/exercises/practice/binary-search/tst/binary-search/binary-search.cut @@ -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" \ No newline at end of file + EXPECT WS-ERROR = "value not in array" +