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/20151002120801785/actions.txt b/.besouro/20151002120801785/actions.txt new file mode 100644 index 00000000..fd56a83d --- /dev/null +++ b/.besouro/20151002120801785/actions.txt @@ -0,0 +1,49 @@ +FileOpenedAction 1443776882105 SudokuVerifier.java 198 1 1 0 +RefactoringAction 1443776885825 SudokuVerifier.java ADD String valid FIELD +RefactoringAction 1443776885826 SudokuVerifier.java ADD String invalid FIELD +RefactoringAction 1443776885827 SudokuVerifier.java ADD void possibleSolution() METHOD +EditAction 1443777106556 SudokuVerifier.java 539 2 2 0 +RefactoringAction 1443777678923 TestSudokuVerifier.java RENAME test()=>void testInput() METHOD +RefactoringAction 1443777682433 TestSudokuVerifier.java RENAME testInput()=>void testInputLength() METHOD +RefactoringAction 1443777908052 TestSudokuVerifier.java ADD SudokuVerifier game FIELD +RefactoringAction 1443777923587 TestSudokuVerifier.java ADD void setup() METHOD +RefactoringAction 1443777962240 TestSudokuVerifier.java ADD import org.junit.Before IMPORT +EditAction 1443778288621 SudokuVerifier.java 941 2 3 0 +EditAction 1443778288700 TestSudokuVerifier.java 364 2 2 1 +UnitTestCaseAction 1443778289396 TestSudokuVerifier.java OK +UnitTestSessionAction 1443778289399 Sudoku OK +RefactoringAction 1443778357809 TestSudokuVerifier.java ADD void test FIELD +RefactoringAction 1443778360821 TestSudokuVerifier.java RENAME test=>void testSubGrid FIELD +RefactoringAction 1443778362835 TestSudokuVerifier.java RENAME testSubGrid=>void testSubGrid() METHOD +RefactoringAction 1443778412963 TestSudokuVerifier.java RENAME testSubGrid()=>void testIn() METHOD +RefactoringAction 1443778414477 TestSudokuVerifier.java RENAME testIn()=>void test() METHOD +RefactoringAction 1443778415491 TestSudokuVerifier.java RENAME test()=>void testI() METHOD +RefactoringAction 1443778417505 TestSudokuVerifier.java RENAME testI()=>void testInput() METHOD +RefactoringAction 1443778420519 TestSudokuVerifier.java RENAME testInput()=>void testInputString() METHOD +RefactoringAction 1443778421533 TestSudokuVerifier.java RENAME testInputString()=>void testInputStringIs() METHOD +RefactoringAction 1443778424047 TestSudokuVerifier.java RENAME testInputStringIs()=>void testInputStringIsValid() METHOD +RefactoringAction 1443778805910 SudokuVerifier.java ADD import org.hamcrest.core.Is IMPORT +EditAction 1443778927951 SudokuVerifier.java 1072 2 4 0 +EditAction 1443778928030 TestSudokuVerifier.java 461 3 3 2 +UnitTestCaseAction 1443778928742 TestSudokuVerifier.java OK +UnitTestSessionAction 1443778928743 Sudoku OK +RefactoringAction 1443778969749 TestSudokuVerifier.java ADD void test FIELD +RefactoringAction 1443778972262 TestSudokuVerifier.java RENAME test=>void testSubG FIELD +RefactoringAction 1443778973775 TestSudokuVerifier.java RENAME testSubG=>void testSubGrid FIELD +RefactoringAction 1443778978290 TestSudokuVerifier.java RENAME testSubGrid=>void testSubGridIs FIELD +RefactoringAction 1443778980304 TestSudokuVerifier.java RENAME testSubGridIs=>void testSubGridIsValid FIELD +RefactoringAction 1443778981817 TestSudokuVerifier.java RENAME testSubGridIsValid=>void testSubGridIsValid() METHOD +EditAction 1443779049473 SudokuVerifier.java 1073 2 4 0 +EditAction 1443779049590 TestSudokuVerifier.java 557 4 4 3 +UnitTestCaseAction 1443779050222 TestSudokuVerifier.java FAIL +UnitTestSessionAction 1443779050222 Sudoku FAIL +EditAction 1443779123996 SudokuVerifier.java 1087 2 4 0 +UnitTestCaseAction 1443779124770 TestSudokuVerifier.java OK +UnitTestSessionAction 1443779124770 Sudoku OK +EditAction 1443779353432 SudokuVerifier.java 1081 2 4 0 +UnitTestCaseAction 1443779354204 TestSudokuVerifier.java OK +UnitTestSessionAction 1443779354205 Sudoku OK +UnitTestCaseAction 1443779564222 TestSudokuVerifier.java FAIL +UnitTestSessionAction 1443779564223 Sudoku FAIL +RefactoringAction 1443780363187 SudokuVerifier.java ADD import java.util.ArrayList IMPORT +EditAction 1443782203371 SudokuVerifier.java 1678 2 15 0 diff --git a/.besouro/20151002120801785/besouroEpisodes.txt b/.besouro/20151002120801785/besouroEpisodes.txt new file mode 100644 index 00000000..286f7685 --- /dev/null +++ b/.besouro/20151002120801785/besouroEpisodes.txt @@ -0,0 +1,7 @@ +1443778289399 test-first 4 1407 true +1443778289400 test-last 1 1407 false +1443778289401 production 1 1407 false +1443778928743 test-last 1 570 false +1443779124770 test-first 3 155 true +1443779124771 test-last 1 155 false +1443779354205 refactoring 2A 0 true diff --git a/.besouro/20151002120801785/disagreements.txt b/.besouro/20151002120801785/disagreements.txt new file mode 100644 index 00000000..e69de29b diff --git a/.besouro/20151002120801785/randomHeuristicEpisodes.txt b/.besouro/20151002120801785/randomHeuristicEpisodes.txt new file mode 100644 index 00000000..f351665d --- /dev/null +++ b/.besouro/20151002120801785/randomHeuristicEpisodes.txt @@ -0,0 +1,4 @@ +1443778289399 test-first 4 1407 true +1443778928743 test-last 1 570 false +1443779124770 test-first 3 155 true +1443779354205 refactoring 2A 0 true diff --git a/.besouro/20151002120801785/userComments.txt b/.besouro/20151002120801785/userComments.txt new file mode 100644 index 00000000..e69de29b diff --git a/.besouro/20151002120801785/zorroEpisodes.txt b/.besouro/20151002120801785/zorroEpisodes.txt new file mode 100644 index 00000000..08794fe8 --- /dev/null +++ b/.besouro/20151002120801785/zorroEpisodes.txt @@ -0,0 +1,4 @@ +1443778289399 test-first 4 1407 true +1443778928743 test-last 1 639 false +1443779124770 test-first 3 196 true +1443779354205 refactoring 2A 229 true 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..19096fed 100644 --- a/src/org/univoulu/tol/sqatlab/sudoku/SudokuVerifier.java +++ b/src/org/univoulu/tol/sqatlab/sudoku/SudokuVerifier.java @@ -1,9 +1,50 @@ -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; + +public class SudokuVerifier { + + String valid = "417369825632158947958724316825437169791586432346912758289643571573291684164875293"; + String invalid = "123456789912345678891234567789123456678912345567891234456789123345678912234567891"; + + public int possibleSolution(){ + switch(verify(invalid)){ + case 0: System.out.println("Valid Solution"); return 0; + case -1: System.out.println("Invalid Input"); return -1; + case -2: System.out.println("Number repeated in subgrid"); return -2; + case -3: System.out.println("Number repeated in row"); return -3; + case -4: System.out.println("Number repeated in column"); return -4; + case -5: System.out.println("Invalid Input"); return -5; + default: return 1; + } + + } + + public int verify(String candidateSolution) { + //check length + if(candidateSolution.length()!=81) return -5; + + //valid numbers + for(int i=0; i<81; i++){ + if(!Character.isDigit(candidateSolution.charAt(i))) return -1; + } + + //row validity + ArrayList rows = new ArrayList<>(); + rows.add(candidateSolution.substring(0, 8)); + rows.add(candidateSolution.substring(9, 17)); + rows.add(candidateSolution.substring(18, 26)); + rows.add(candidateSolution.substring(27, 35)); + rows.add(candidateSolution.substring(36, 44)); + rows.add(candidateSolution.substring(45, 53)); + rows.add(candidateSolution.substring(54, 62)); + rows.add(candidateSolution.substring(63, 71)); + rows.add(candidateSolution.substring(72, 80)); + + if(rows.subList(1, 9).contains(rows.get(0))) return -3; + + + //subgrid validity + return -2; + } +} diff --git a/src/org/univoulu/tol/sqatlab/sudoku/TestSudokuVerifier.java b/src/org/univoulu/tol/sqatlab/sudoku/TestSudokuVerifier.java index c0c92901..cd7f50bf 100644 --- a/src/org/univoulu/tol/sqatlab/sudoku/TestSudokuVerifier.java +++ b/src/org/univoulu/tol/sqatlab/sudoku/TestSudokuVerifier.java @@ -1,14 +1,31 @@ -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.Before; +import org.junit.Test; + +public class TestSudokuVerifier { + + SudokuVerifier game; + + @Before + public void setup(){ + game = new SudokuVerifier(); + } + + @Test + public void testInputLength() { + assertEquals(0, game.possibleSolution()); + } + + @Test + public void testInputStringIsValid(){ + assertEquals(0, game.possibleSolution()); + } + + @Test + public void testSubGridIsValid(){ + assertEquals(0, game.possibleSolution()); + } +}