diff --git a/.besouro/20150930115137755/actions.txt b/.besouro/20150930115137755/actions.txt index 5e645161..0dfab216 100644 --- a/.besouro/20150930115137755/actions.txt +++ b/.besouro/20150930115137755/actions.txt @@ -1,8 +1,8 @@ -FileOpenedAction 1443603101760 SudokuVerifier.java 75 1 0 0 -EditAction 1443603121425 SudokuVerifier.java 116 1 1 0 -RefactoringAction 1443603133972 SudokuVerifier.java RENAME verify()=>int verify(String) METHOD -EditAction 1443603167403 SudokuVerifier.java 189 1 1 0 -RefactoringAction 1443603212994 TestSudokuVerifier.java ADD void test() METHOD -RefactoringAction 1443603213121 TestSudokuVerifier.java ADD import org.junit.Assert.* IMPORT -RefactoringAction 1443603213283 TestSudokuVerifier.java ADD TestSudokuVerifier.java CLASS -FileOpenedAction 1443603215695 TestSudokuVerifier.java 202 1 1 0 +FileOpenedAction 1443603101760 SudokuVerifier.java 75 1 0 0 +EditAction 1443603121425 SudokuVerifier.java 116 1 1 0 +RefactoringAction 1443603133972 SudokuVerifier.java RENAME verify()=>int verify(String) METHOD +EditAction 1443603167403 SudokuVerifier.java 189 1 1 0 +RefactoringAction 1443603212994 TestSudokuVerifier.java ADD void test() METHOD +RefactoringAction 1443603213121 TestSudokuVerifier.java ADD import org.junit.Assert.* IMPORT +RefactoringAction 1443603213283 TestSudokuVerifier.java ADD TestSudokuVerifier.java CLASS +FileOpenedAction 1443603215695 TestSudokuVerifier.java 202 1 1 0 diff --git a/.besouro/20151002113904208/actions.txt b/.besouro/20151002113904208/actions.txt new file mode 100644 index 00000000..a20e37c1 --- /dev/null +++ b/.besouro/20151002113904208/actions.txt @@ -0,0 +1 @@ +FileOpenedAction 1443775144667 SudokuVerifier.java 198 1 1 0 diff --git a/.besouro/20151002113904208/besouroEpisodes.txt b/.besouro/20151002113904208/besouroEpisodes.txt new file mode 100644 index 00000000..e69de29b diff --git a/.besouro/20151002113904208/disagreements.txt b/.besouro/20151002113904208/disagreements.txt new file mode 100644 index 00000000..e69de29b diff --git a/.besouro/20151002113904208/randomHeuristicEpisodes.txt b/.besouro/20151002113904208/randomHeuristicEpisodes.txt new file mode 100644 index 00000000..e69de29b diff --git a/.besouro/20151002113904208/userComments.txt b/.besouro/20151002113904208/userComments.txt new file mode 100644 index 00000000..e69de29b diff --git a/.besouro/20151002113904208/zorroEpisodes.txt b/.besouro/20151002113904208/zorroEpisodes.txt new file mode 100644 index 00000000..e69de29b diff --git a/.besouro/20151002115233551/actions.txt b/.besouro/20151002115233551/actions.txt new file mode 100644 index 00000000..7be55888 --- /dev/null +++ b/.besouro/20151002115233551/actions.txt @@ -0,0 +1,135 @@ +FileOpenedAction 1443775953708 TestSudokuVerifier.java 216 1 1 0 +RefactoringAction 1443775974060 TestSudokuVerifier.java RENAME test()=>void testIf() METHOD +RefactoringAction 1443775976574 TestSudokuVerifier.java RENAME testIf()=>void testIfVerify() METHOD +RefactoringAction 1443775986583 TestSudokuVerifier.java RENAME testIfVerify()=>void testIfVerifyMethodRuns() METHOD +RefactoringAction 1443776405004 TestSudokuVerifier.java RENAME testIfVerifyMethodRuns()=>void testIfVer() METHOD +RefactoringAction 1443776408520 TestSudokuVerifier.java RENAME testIfVer()=>void testIfVerifyMeho() METHOD +RefactoringAction 1443776421031 TestSudokuVerifier.java RENAME testIfVerifyMeho()=>void testIfVerifyMe() METHOD +RefactoringAction 1443776425544 TestSudokuVerifier.java RENAME testIfVerifyMe()=>void testIfVerifyMethodAcceptsCorrect() METHOD +RefactoringAction 1443776427552 TestSudokuVerifier.java RENAME testIfVerifyMethodAcceptsCorrect()=>void testIfVerifyMethodAcceptsCorrectSolution() METHOD +EditAction 1443776662093 TestSudokuVerifier.java 435 1 3 1 +UnitTestCaseAction 1443776670348 TestSudokuVerifier.java FAIL +UnitTestSessionAction 1443776670378 TestSudokuVerifier FAIL +EditAction 1443776687534 SudokuVerifier.java 198 1 1 0 +UnitTestCaseAction 1443776692891 TestSudokuVerifier.java OK +UnitTestSessionAction 1443776692892 TestSudokuVerifier OK +RefactoringAction 1443777358101 TestSudokuVerifier.java ADD void test FIELD +RefactoringAction 1443777365610 TestSudokuVerifier.java RENAME test=>void testIfFirstRowIsValid FIELD +RefactoringAction 1443777371277 TestSudokuVerifier.java RENAME testIfFirstRowIsValid=>void testIfFirstRowIsValid() METHOD +EditAction 1443777424519 SudokuVerifier.java 202 1 1 0 +EditAction 1443777430736 TestSudokuVerifier.java 659 2 5 1 +RefactoringAction 1443777484965 TestSudokuVerifier.java RENAME testIfFirstRowIsValid()=>void testIfFirstCorrectRowIsValid() METHOD +UnitTestCaseAction 1443777496362 TestSudokuVerifier.java OK +UnitTestSessionAction 1443777496363 TestSudokuVerifier OK +RefactoringAction 1443777529873 SudokuVerifier.java ADD int verifyRow FIELD +RefactoringAction 1443777532380 SudokuVerifier.java RENAME verifyRow=>int verifyRow() METHOD +RefactoringAction 1443777535888 SudokuVerifier.java RENAME verifyRow()=>int verifyRow(String) METHOD +RefactoringAction 1443777835522 SudokuVerifier.java ADD static List getParts(String, int) METHOD +RefactoringAction 1443777958170 SudokuVerifier.java ADD import java.util.List IMPORT +RefactoringAction 1443777962581 SudokuVerifier.java ADD import java.util.ArrayList IMPORT +RefactoringAction 1443777996631 SudokuVerifier.java RENAME getParts(String, int)=>static List getRows(String, int) METHOD +RefactoringAction 1443778030147 SudokuVerifier.java ADD void verifyRow() METHOD +RefactoringAction 1443778032663 SudokuVerifier.java REMOVE verifyRow() METHOD +RefactoringAction 1443778040188 SudokuVerifier.java ADD void verifyRow() METHOD +RefactoringAction 1443778042220 SudokuVerifier.java REMOVE verifyRow() METHOD +RefactoringAction 1443778545412 SudokuVerifier.java REMOVE getRows(String, int) METHOD +EditAction 1443778556437 SudokuVerifier.java 276 2 2 0 +RefactoringAction 1443778769970 SudokuVerifier.java ADD static List splitEqually(String, int) METHOD +RefactoringAction 1443779123653 TestSudokuVerifier.java RENAME testIfFirstCorrectRowIsValid()=>void testIfFirstRowsAreIsValid() METHOD +RefactoringAction 1443779126162 TestSudokuVerifier.java RENAME testIfFirstRowsAreIsValid()=>void testIfFirstRowsAreValid() METHOD +EditAction 1443779132165 SudokuVerifier.java 984 3 7 0 +EditAction 1443779138202 TestSudokuVerifier.java 707 2 6 2 +UnitTestCaseAction 1443779143410 TestSudokuVerifier.java OK +UnitTestSessionAction 1443779143411 TestSudokuVerifier OK +EditAction 1443779156154 TestSudokuVerifier.java 707 2 6 2 +UnitTestCaseAction 1443779161292 TestSudokuVerifier.java FAIL +UnitTestSessionAction 1443779161293 TestSudokuVerifier FAIL +EditAction 1443779233461 SudokuVerifier.java 1035 3 8 0 +UnitTestCaseAction 1443779240656 TestSudokuVerifier.java FAIL +UnitTestSessionAction 1443779240657 TestSudokuVerifier FAIL +EditAction 1443779364943 SudokuVerifier.java 1067 3 9 0 +UnitTestCaseAction 1443779372412 TestSudokuVerifier.java FAIL +UnitTestSessionAction 1443779372413 TestSudokuVerifier FAIL +RefactoringAction 1443779407221 TestSudokuVerifier.java RENAME testIfFirstRowsAreValid()=>void testIfRowsAreValid() METHOD +RefactoringAction 1443779409233 TestSudokuVerifier.java RENAME testIfRowsAreValid()=>void testIfAllRowsAreValid() METHOD +EditAction 1443779412807 TestSudokuVerifier.java 705 2 6 2 +EditAction 1443779468620 SudokuVerifier.java 1088 3 8 0 +UnitTestCaseAction 1443779474022 TestSudokuVerifier.java FAIL +UnitTestSessionAction 1443779474023 TestSudokuVerifier FAIL +EditAction 1443779488023 SudokuVerifier.java 1088 3 8 0 +UnitTestCaseAction 1443779493462 TestSudokuVerifier.java FAIL +UnitTestSessionAction 1443779493463 TestSudokuVerifier FAIL +RefactoringAction 1443779592280 TestSudokuVerifier.java RENAME testIfAllRowsAreValid()=>void testIfAllRowsAreInalid() METHOD +RefactoringAction 1443779594790 TestSudokuVerifier.java RENAME testIfAllRowsAreInalid()=>void testIfAllRowsAreInalidWithW() METHOD +RefactoringAction 1443779598798 TestSudokuVerifier.java RENAME testIfAllRowsAreInalidWithW()=>void testIfAllRowsAreInalidWith() METHOD +RefactoringAction 1443779602806 TestSudokuVerifier.java RENAME testIfAllRowsAreInalidWith()=>void testIfAllRowsAreInalidWithIncorrect() METHOD +RefactoringAction 1443779605318 TestSudokuVerifier.java RENAME testIfAllRowsAreInalidWithIncorrect()=>void testIfAllRowsAreInalidWithIncorrectString() METHOD +EditAction 1443779635813 TestSudokuVerifier.java 729 2 6 2 +UnitTestCaseAction 1443779644270 TestSudokuVerifier.java FAIL +UnitTestSessionAction 1443779644271 TestSudokuVerifier FAIL +EditAction 1443780182552 SudokuVerifier.java 1321 3 10 0 +UnitTestCaseAction 1443780190873 TestSudokuVerifier.java FAIL +UnitTestSessionAction 1443780190874 TestSudokuVerifier FAIL +RefactoringAction 1443780422594 TestSudokuVerifier.java RENAME testIfAllRowsAreInalidWithIncorrectString()=>void testIfAllRowsAreInvalidWithIncorrectString() METHOD +RefactoringAction 1443780555185 TestSudokuVerifier.java ADD void testIfVerificationFailsWithTooManyCharacters() METHOD +EditAction 1443780690292 SudokuVerifier.java 1326 3 10 0 +EditAction 1443780694691 TestSudokuVerifier.java 994 3 6 2 +CompilationAction 1443780701496 TestSudokuVerifier.java +CompilationAction 1443780701497 TestSudokuVerifier.java +CompilationAction 1443780701498 TestSudokuVerifier.java +EditAction 1443780721947 TestSudokuVerifier.java 1023 3 9 3 +UnitTestCaseAction 1443780727316 TestSudokuVerifier.java FAIL +UnitTestSessionAction 1443780727317 TestSudokuVerifier FAIL +RefactoringAction 1443780769774 SudokuVerifier.java ADD int verify FIELD +RefactoringAction 1443780772287 SudokuVerifier.java RENAME verify=>int ve FIELD +RefactoringAction 1443780775799 SudokuVerifier.java RENAME ve=>int verifyAnswerLength FIELD +RefactoringAction 1443780777317 SudokuVerifier.java RENAME verifyAnswerLength=>int verifyAnswerLength() METHOD +RefactoringAction 1443780788344 SudokuVerifier.java RENAME verifyAnswerLength()=>int verifyAnswerLength(String) METHOD +EditAction 1443780889581 SudokuVerifier.java 1565 4 12 0 +UnitTestCaseAction 1443780895126 TestSudokuVerifier.java FAIL +UnitTestSessionAction 1443780895127 TestSudokuVerifier FAIL +EditAction 1443780903670 TestSudokuVerifier.java 1024 3 9 3 +UnitTestCaseAction 1443780908744 TestSudokuVerifier.java FAIL +UnitTestSessionAction 1443780908745 TestSudokuVerifier FAIL +RefactoringAction 1443780919096 TestSudokuVerifier.java ADD void testIfVerificationFailsWithTooManyCharacters()/2 METHOD +RefactoringAction 1443780930606 TestSudokuVerifier.java RENAME testIfVerificationFailsWithTooManyCharacters()/2=>void testIfVerificationFailsWithTooFewCharacters() METHOD +EditAction 1443780934967 TestSudokuVerifier.java 1269 4 12 4 +UnitTestCaseAction 1443780940343 TestSudokuVerifier.java FAIL +UnitTestSessionAction 1443780940344 TestSudokuVerifier FAIL +EditAction 1443780945785 TestSudokuVerifier.java 1268 4 12 4 +CompilationAction 1443780950129 TestSudokuVerifier.java +CompilationAction 1443780971471 TestSudokuVerifier.java +UnitTestCaseAction 1443780972848 TestSudokuVerifier.java FAIL +UnitTestSessionAction 1443780972849 TestSudokuVerifier FAIL +EditAction 1443781238498 TestSudokuVerifier.java 1267 4 12 4 +UnitTestCaseAction 1443781246549 TestSudokuVerifier.java OK +UnitTestSessionAction 1443781246550 TestSudokuVerifier OK +RefactoringAction 1443781364273 TestSudokuVerifier.java ADD void testIfAnswerIsInvalidWithLettersInSolution() METHOD +EditAction 1443781423819 SudokuVerifier.java 1569 4 12 0 +EditAction 1443781427957 TestSudokuVerifier.java 1557 5 15 5 +UnitTestCaseAction 1443781433379 TestSudokuVerifier.java FAIL +UnitTestSessionAction 1443781433380 TestSudokuVerifier FAIL +RefactoringAction 1443781564344 SudokuVerifier.java ADD List rows FIELD +RefactoringAction 1443781564345 SudokuVerifier.java ADD String correctRows FIELD +RefactoringAction 1443781564346 SudokuVerifier.java ADD String row FIELD +RefactoringAction 1443781926474 SudokuVerifier.java REMOVE rows FIELD +RefactoringAction 1443781926475 SudokuVerifier.java REMOVE correctRows FIELD +RefactoringAction 1443781926476 SudokuVerifier.java REMOVE row FIELD +EditAction 1443781943972 SudokuVerifier.java 1722 4 13 0 +UnitTestCaseAction 1443781949912 TestSudokuVerifier.java FAIL +UnitTestSessionAction 1443781949913 TestSudokuVerifier FAIL +EditAction 1443781997835 SudokuVerifier.java 1717 4 13 0 +UnitTestCaseAction 1443782002945 TestSudokuVerifier.java FAIL +UnitTestSessionAction 1443782002946 TestSudokuVerifier FAIL +EditAction 1443782069343 SudokuVerifier.java 1784 4 13 0 +UnitTestCaseAction 1443782074783 TestSudokuVerifier.java FAIL +UnitTestSessionAction 1443782074784 TestSudokuVerifier FAIL +EditAction 1443782403914 SudokuVerifier.java 1717 4 13 0 +UnitTestCaseAction 1443782409126 TestSudokuVerifier.java OK +UnitTestSessionAction 1443782409127 TestSudokuVerifier OK +RefactoringAction 1443782466523 SudokuVerifier.java ADD void validateSolutionLength(String) METHOD +EditAction 1443782466534 SudokuVerifier.java 1835 5 14 0 +CompilationAction 1443782470927 SudokuVerifier.java +RefactoringAction 1443782588402 SudokuVerifier.java REMOVE validateSolutionLength(String) METHOD +UnitTestCaseAction 1443782617881 TestSudokuVerifier.java OK +UnitTestSessionAction 1443782617882 TestSudokuVerifier OK diff --git a/.besouro/20151002115233551/besouroEpisodes.txt b/.besouro/20151002115233551/besouroEpisodes.txt new file mode 100644 index 00000000..2611e779 --- /dev/null +++ b/.besouro/20151002115233551/besouroEpisodes.txt @@ -0,0 +1,75 @@ +1443776692892 test-addition 2 739 true +1443776692893 test-addition 1 739 true +1443777496363 refactoring 3 138 true +1443777496364 refactoring 3 138 true +1443777496365 refactoring 3 138 true +1443777496366 refactoring 3 138 true +1443777496367 refactoring 3 138 true +1443777496368 refactoring 3 138 true +1443777496369 refactoring 3 138 true +1443777496370 refactoring 3 138 true +1443777496371 refactoring 3 138 true +1443777496372 refactoring 3 138 true +1443777496373 refactoring 3 138 true +1443777496374 refactoring 3 138 true +1443777496375 refactoring 3 138 true +1443777496376 refactoring 3 138 true +1443777496377 refactoring 3 138 true +1443777496378 refactoring 3 138 true +1443777496379 refactoring 3 138 true +1443777496380 refactoring 3 138 true +1443777496381 refactoring 3 138 true +1443777496382 refactoring 3 138 true +1443777496383 refactoring 3 138 true +1443777496384 refactoring 3 138 true +1443777496385 refactoring 3 138 true +1443777496386 refactoring 3 138 true +1443777496387 refactoring 3 138 true +1443779143411 test-last 1 1613 false +1443779143412 test-last 1 1613 false +1443781246550 test-first 1 2090 true +1443781246551 test-last 1 2090 false +1443781246552 test-first 1 2090 true +1443781246553 test-last 1 2090 false +1443781246554 test-first 1 2090 true +1443781246555 test-last 1 2090 false +1443781246556 test-last 1 2090 false +1443781246557 test-last 1 2090 false +1443781246558 test-last 1 2090 false +1443781246559 test-last 1 2090 false +1443781246560 test-last 1 2090 false +1443781246561 test-last 1 2090 false +1443781246562 test-last 1 2090 false +1443781246563 test-last 1 2090 false +1443781246564 test-last 1 2090 false +1443781246565 test-last 1 2090 false +1443781246566 test-last 1 2090 false +1443781246567 test-last 1 2090 false +1443781246568 test-last 1 2090 false +1443781246569 test-last 1 2090 false +1443781246570 test-last 1 2090 false +1443781246571 test-last 1 2090 false +1443781246572 test-last 1 2090 false +1443781246573 test-last 1 2090 false +1443782409127 test-first 3 1044 true +1443782409128 test-first 3 1044 true +1443782409129 test-first 3 1044 true +1443782409130 test-first 3 1044 true +1443782409131 test-first 3 1044 true +1443782409132 test-first 3 1044 true +1443782409133 test-first 3 1044 true +1443782409134 test-first 3 1044 true +1443782409135 test-first 3 1044 true +1443782409136 test-first 3 1044 true +1443782409137 test-first 3 1044 true +1443782409138 test-first 3 1044 true +1443782409139 test-first 3 1044 true +1443782409140 test-first 3 1044 true +1443782409141 test-first 3 1044 true +1443782409142 test-first 3 1044 true +1443782409143 test-first 3 1044 true +1443782409144 test-first 3 1044 true +1443782409145 test-first 3 1044 true +1443782409146 test-first 3 1044 true +1443782409147 test-last 1 1044 false +1443782617882 production 3 151 false diff --git a/.besouro/20151002115233551/disagreements.txt b/.besouro/20151002115233551/disagreements.txt new file mode 100644 index 00000000..e69de29b diff --git a/.besouro/20151002115233551/randomHeuristicEpisodes.txt b/.besouro/20151002115233551/randomHeuristicEpisodes.txt new file mode 100644 index 00000000..2e714f88 --- /dev/null +++ b/.besouro/20151002115233551/randomHeuristicEpisodes.txt @@ -0,0 +1,6 @@ +1443776692892 test-addition 2 739 false +1443777496363 refactoring 3 138 true +1443779143411 test-last 1 1613 false +1443781246550 test-first 1 2090 true +1443782409127 test-first 3 1044 true +1443782617882 production 3 151 true diff --git a/.besouro/20151002115233551/userComments.txt b/.besouro/20151002115233551/userComments.txt new file mode 100644 index 00000000..e69de29b diff --git a/.besouro/20151002115233551/zorroEpisodes.txt b/.besouro/20151002115233551/zorroEpisodes.txt new file mode 100644 index 00000000..9d3c66d4 --- /dev/null +++ b/.besouro/20151002115233551/zorroEpisodes.txt @@ -0,0 +1,6 @@ +1443776692892 test-addition 2 739 false +1443777496363 refactoring 3 803 false +1443779143411 test-last 1 1647 false +1443781246550 test-first 1 2103 true +1443782409127 test-first 3 1162 true +1443782617882 production 3 208 false diff --git a/.classpath b/.classpath index 3e0fb272..2d749757 100644 --- a/.classpath +++ b/.classpath @@ -1,7 +1,7 @@ - - - - - - - + + + + + + + diff --git a/.gitignore b/.gitignore index ed9f7620..4e9f5ccf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -/bin/ +/bin/ .DS_Store \ No newline at end of file diff --git a/.project b/.project index b273577a..fe8c58e6 100644 --- a/.project +++ b/.project @@ -1,17 +1,17 @@ - - - Sudoku - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - + + + Sudoku + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/README.md b/README.md index badc70df..e840d8d4 100644 --- a/README.md +++ b/README.md @@ -1 +1 @@ -# Sudoku +# Sudoku diff --git a/src/org/univoulu/tol/sqatlab/sudoku/SudokuVerifier.java b/src/org/univoulu/tol/sqatlab/sudoku/SudokuVerifier.java index a4b68fe7..bdbb7b29 100644 --- a/src/org/univoulu/tol/sqatlab/sudoku/SudokuVerifier.java +++ b/src/org/univoulu/tol/sqatlab/sudoku/SudokuVerifier.java @@ -1,9 +1,67 @@ -package org.univoulu.tol.sqatlab.sudoku; - -public class SudokuVerifier { - - public int verify(String candidateSolution) { - // returns 1 if the candidate solution is correct - return 0; - } -} +package org.univoulu.tol.sqatlab.sudoku; + +import java.util.ArrayList; +import java.util.List; + +public class SudokuVerifier { + + public int verify(String candidateSolution) { + + if(!verifyAnswerLength(candidateSolution)) + return -1; + + for (Character solutionDigit : candidateSolution.toCharArray()){ + if (Character.isDigit(solutionDigit) == false) + return -1; + } + + + List rows = splitEqually(candidateSolution, 9); + String correctRows = ""; + + for (String row : rows){ + correctRows += verifyRow(row.toString()); + } + + if (correctRows.contains("0")) + return -1; + else + return 0; + } + + public int verifyRow(String candidateRow) { + + int[] numbers = {1,2,3,4,5,6,7,8,9}; + for (int number : numbers){ + int count = 0; + if (count > 1) + return 0; + for (char answer : candidateRow.toCharArray()){ + if (number == answer) + count++; + } + } + return 1; + } + + //Credit for splitting method to Jon Skeet: + //http://stackoverflow.com/questions/3760152/split-string-to-equal-length-substrings-in-java + public static List splitEqually(String text, int size) { + // Give the list the right capacity to start with. You could use an array + // instead if you wanted. + List ret = new ArrayList((text.length() + size - 1) / size); + + for (int start = 0; start < text.length(); start += size) { + ret.add(text.substring(start, Math.min(text.length(), start + size))); + } + return ret; + } + + public boolean verifyAnswerLength(String candidateSolution){ + if (candidateSolution.length() > 81 || candidateSolution.length() < 81) + return false; + else + return true; + } + +} diff --git a/src/org/univoulu/tol/sqatlab/sudoku/TestSudokuVerifier.java b/src/org/univoulu/tol/sqatlab/sudoku/TestSudokuVerifier.java index c0c92901..9a3c9818 100644 --- a/src/org/univoulu/tol/sqatlab/sudoku/TestSudokuVerifier.java +++ b/src/org/univoulu/tol/sqatlab/sudoku/TestSudokuVerifier.java @@ -1,14 +1,46 @@ -package org.univoulu.tol.sqatlab.sudoku; - -import static org.junit.Assert.*; - -import org.junit.Test; - -public class TestSudokuVerifier { - - @Test - public void test() { - fail("Not yet implemented"); - } - -} +package org.univoulu.tol.sqatlab.sudoku; + +import static org.junit.Assert.*; + +import org.junit.Test; + +public class TestSudokuVerifier { + + @Test + public void testIfVerifyMethodAcceptsCorrectSolution() { + + SudokuVerifier sudoku = new SudokuVerifier(); + String correctString = "417369825632158947958724316825437169791586432346912758289643571573291684164875293"; + assertEquals(0, sudoku.verify(correctString)); + } + + @Test + public void testIfVerificationFailsWithTooManyCharacters(){ + SudokuVerifier sudoku = new SudokuVerifier(); + String tooManyDigits = "417369825632158947958724316825437169791586432346912723432458289643571573291684164875293"; + assertEquals(-1, sudoku.verify(tooManyDigits)); + } + + @Test + public void testIfVerificationFailsWithTooFewCharacters(){ + SudokuVerifier sudoku = new SudokuVerifier(); + String tooFewDigits = "417369825632158943571573291684164875293"; + assertEquals(-1, sudoku.verify(tooFewDigits)); + } + + @Test + public void testIfAnswerIsInvalidWithLettersInSolution(){ + SudokuVerifier sudoku = new SudokuVerifier(); + String StringAndLetter = "k17369825632158947958724316825437169791586432346912758289643571573291684164875293"; + assertEquals(-1, sudoku.verify(StringAndLetter)); + } + + @Test + public void testIfAllRowsAreInvalidWithIncorrectString() { + + SudokuVerifier sudoku = new SudokuVerifier(); + String incorrectString = "123456789912345678891234567789123456678912345567891234456789123345678912234567891"; + assertEquals(0, sudoku.verify(incorrectString)); + } + +}