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/20151009215441321/actions.txt b/.besouro/20151009215441321/actions.txt new file mode 100644 index 00000000..b189c361 --- /dev/null +++ b/.besouro/20151009215441321/actions.txt @@ -0,0 +1,44 @@ +FileOpenedAction 1444398882209 SudokuVerifier.java 198 1 1 0 +FileOpenedAction 1444398897638 TestSudokuVerifier.java 216 1 1 0 +RefactoringAction 1444399279434 SudokuVerifier.java ADD String sub FIELD +RefactoringAction 1444399293064 SudokuVerifier.java ADD Object check9() METHOD +EditAction 1444399304830 SudokuVerifier.java 308 2 2 0 +EditAction 1444399308898 TestSudokuVerifier.java 312 1 4 1 +UnitTestCaseAction 1444399339993 TestSudokuVerifier.java FAIL +UnitTestSessionAction 1444399339999 TestSudokuVerifier FAIL +RefactoringAction 1444399419234 SudokuVerifier.java ADD int FIELD +UnitTestCaseAction 1444399478079 TestSudokuVerifier.java OK +UnitTestSessionAction 1444399478080 TestSudokuVerifier OK +EditAction 1444399488629 TestSudokuVerifier.java 312 1 4 1 +UnitTestCaseAction 1444399490635 TestSudokuVerifier.java FAIL +UnitTestSessionAction 1444399490636 TestSudokuVerifier FAIL +RefactoringAction 1444399521725 TestSudokuVerifier.java RENAME test()=>void testCheck() METHOD +RefactoringAction 1444399522751 TestSudokuVerifier.java RENAME testCheck()=>void testCheck9() METHOD +RefactoringAction 1444399552816 TestSudokuVerifier.java ADD void testCheck9()/2 METHOD +RefactoringAction 1444399649097 TestSudokuVerifier.java REMOVE testCheck9()/2 METHOD +RefactoringAction 1444399749609 SudokuVerifier.java RENAME sub=>p String FIELD +RefactoringAction 1444399751641 SudokuVerifier.java RENAME String=>String sub FIELD +EditAction 1444399760838 TestSudokuVerifier.java 318 1 4 1 +EditAction 1444399761081 SudokuVerifier.java 1552 2 10 0 +CompilationAction 1444399762195 TestSudokuVerifier.java +UnitTestCaseAction 1444399771142 TestSudokuVerifier.java FAIL +UnitTestSessionAction 1444399771143 TestSudokuVerifier FAIL +EditAction 1444399813661 SudokuVerifier.java 1731 4 12 0 +UnitTestCaseAction 1444399876833 TestSudokuVerifier.java OK +UnitTestSessionAction 1444399876833 TestSudokuVerifier OK +RefactoringAction 1444399885202 TestSudokuVerifier.java ADD void testCheck9()/2 METHOD +RefactoringAction 1444399893230 TestSudokuVerifier.java RENAME testCheck9()/2=>void testVerify() METHOD +EditAction 1444399993028 TestSudokuVerifier.java 696 2 9 3 +UnitTestCaseAction 1444399994816 TestSudokuVerifier.java FAIL +UnitTestSessionAction 1444399994816 TestSudokuVerifier FAIL +UnitTestCaseAction 1444400278998 TestSudokuVerifier.java FAIL +UnitTestSessionAction 1444400278998 TestSudokuVerifier FAIL +EditAction 1444400287595 TestSudokuVerifier.java 696 2 9 3 +UnitTestCaseAction 1444400289655 TestSudokuVerifier.java FAIL +UnitTestSessionAction 1444400289656 TestSudokuVerifier FAIL +EditAction 1444400325678 TestSudokuVerifier.java 689 2 9 3 +UnitTestCaseAction 1444400327551 TestSudokuVerifier.java FAIL +UnitTestSessionAction 1444400327552 TestSudokuVerifier FAIL +EditAction 1444400347077 TestSudokuVerifier.java 682 2 9 3 +UnitTestCaseAction 1444400353789 TestSudokuVerifier.java OK +UnitTestSessionAction 1444400353790 TestSudokuVerifier OK diff --git a/.besouro/20151009215441321/besouroEpisodes.txt b/.besouro/20151009215441321/besouroEpisodes.txt new file mode 100644 index 00000000..91234d9b --- /dev/null +++ b/.besouro/20151009215441321/besouroEpisodes.txt @@ -0,0 +1,13 @@ +1444399478080 test-last 1 595 false +1444399876833 test-first 1 388 true +1444399876834 production 1 388 false +1444400353790 test-addition 2 468 true +1444400353791 test-addition 2 468 true +1444400353792 test-addition 1 468 true +1444400353793 test-addition 2 468 true +1444400353794 test-addition 2 468 true +1444400353795 test-addition 2 468 true +1444400353796 test-addition 2 468 true +1444400353797 test-addition 1 468 true +1444400353798 test-addition 2 468 true +1444400353799 test-addition 2 468 true diff --git a/.besouro/20151009215441321/disagreements.txt b/.besouro/20151009215441321/disagreements.txt new file mode 100644 index 00000000..e69de29b diff --git a/.besouro/20151009215441321/randomHeuristicEpisodes.txt b/.besouro/20151009215441321/randomHeuristicEpisodes.txt new file mode 100644 index 00000000..7406a7b2 --- /dev/null +++ b/.besouro/20151009215441321/randomHeuristicEpisodes.txt @@ -0,0 +1,3 @@ +1444399478080 test-last 1 595 false +1444399876833 test-first 1 388 true +1444400353790 test-addition 2 468 true diff --git a/.besouro/20151009215441321/userComments.txt b/.besouro/20151009215441321/userComments.txt new file mode 100644 index 00000000..e69de29b diff --git a/.besouro/20151009215441321/zorroEpisodes.txt b/.besouro/20151009215441321/zorroEpisodes.txt new file mode 100644 index 00000000..caed17c8 --- /dev/null +++ b/.besouro/20151009215441321/zorroEpisodes.txt @@ -0,0 +1,3 @@ +1444399478080 test-last 1 595 false +1444399876833 test-first 1 398 true +1444400353790 test-addition 2 476 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..f7d40cf3 100644 --- a/src/org/univoulu/tol/sqatlab/sudoku/SudokuVerifier.java +++ b/src/org/univoulu/tol/sqatlab/sudoku/SudokuVerifier.java @@ -1,9 +1,80 @@ -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; + +public class SudokuVerifier { + + private String sub; + private int[] helper; + + public int verify(String candidateSolution) { + // returns 1 if the candidate solution is correct + if (candidateSolution.length() != 81) + return 1; + + for (int i = 0; i < candidateSolution.length(); i++) { + if (candidateSolution.charAt(i) > '9' || candidateSolution.charAt(i) < + + '1') + return -1; + } + + for (int i = 0, j = 0; i < 3; i++) { + for (j = 0; j < 3; j++) { + setSub(new String()); + setSub(getSub() + candidateSolution.substring(i * 3 * 9 + j * 3, i * 3 * 9 + + + j * 3 + 3)); + setSub(getSub() + candidateSolution.substring((i * 3 + 1) * 9 + j * 3, (i * + + 3 + 1) * 9 + j * 3 + 3)); + setSub(getSub() + candidateSolution.substring((i * 3 + 2) * 9 + j * 3, (i * + + 3 + 2) * 9 + j * 3 + 3)); + if (check9() == false) + return -2; + } + } + + for (int i = 0, j = 0; i < 9; i++) { + setSub(new String()); + for (j = 0; j < 9; j++) { + setSub(getSub() + candidateSolution.charAt(i * 9 + j)); + } + if (check9() == false) + return -3; + } + + for (int i = 0, j = 0; j < 9; j++) { + setSub(new String()); + for (i = 0; i < 9; i++) { + setSub(getSub() + candidateSolution.charAt(i * 9 + j)); + } + if (check9() == false) + return -4; + } + + return 0; + } + + public boolean check9() { + helper = new int[9]; + for (int i = 0; i < 9; i++) + { + helper[getSub().charAt(i) - '1']++; + } + for (int i = 0; i < 9; i++) + { + if (helper[i] != 1) + return false; + } + return true; + } + + public String getSub() { + return sub; + } + + public void setSub(String sub) { + this.sub = sub; + } + +} diff --git a/src/org/univoulu/tol/sqatlab/sudoku/TestSudokuVerifier.java b/src/org/univoulu/tol/sqatlab/sudoku/TestSudokuVerifier.java index c0c92901..abbed5e5 100644 --- a/src/org/univoulu/tol/sqatlab/sudoku/TestSudokuVerifier.java +++ b/src/org/univoulu/tol/sqatlab/sudoku/TestSudokuVerifier.java @@ -1,14 +1,26 @@ -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 testCheck9() { + SudokuVerifier sv = new SudokuVerifier(); + sv.setSub("123456789"); + boolean exp = true; + assertEquals(exp, sv.check9()); + } + + @Test + public void testVerify() { + SudokuVerifier sv = new SudokuVerifier(); + int exp1 = 0; + int exp2 = -2; + assertEquals(exp1, sv.verify("417369825632158947958724316825437169791586432346912758289643571573291684164875293")); + assertEquals(exp2, sv.verify("123456789912345678891234567789123456678912345567891234456789123345678912234567891")); + } + +}