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());
+ }
+}