sudoku-funpark/solver/validator_test.go

54 lines
1.6 KiB
Go

package solver
import (
"testing"
"gitea.ligthert.net/golang/sudoku-funpark/controller"
"gitea.ligthert.net/golang/sudoku-funpark/outputter"
)
// This function will test the validator function.
// It will create all the structs, and set required values
// Load the blocks, populate the blocks, and then run the validator
func TestValidator(t *testing.T) {
// Do all the necesarry steps to initialize the solver.
solver := Solver{}
outp := outputter.Outputter{}
outp.OutputType = "short"
solver.Outp = &outp
controller := controller.Controller{}
solver.Controller = &controller
solver.LoadBlocks()
// Fill the slices of solver.rows with the following values:
// [769154832 154832769 832769154 671945328 945328671 328671945 597416283 416283597 283597416]
solver.row1s = []string{"769154832"}
solver.row2s = []string{"154832769"}
solver.row3s = []string{"832769154"}
solver.row4s = []string{"671945328"}
solver.row5s = []string{"945328671"}
solver.row6s = []string{"328671945"}
solver.row7s = []string{"597416283"}
solver.row8s = []string{"416283597"}
solver.row9s = []string{"283597416"}
// Set the rows to validate
rows1Index := 0
rows2Index := 0
rows3Index := 0
rows4Index := 0
rows5Index := 0
rows6Index := 0
rows7Index := 0
rows8Index := 0
rows9Index := 0
// Run the validator
solver.validator(rows1Index, rows2Index, rows3Index, rows4Index, rows5Index, rows6Index, rows7Index, rows8Index, rows9Index)
// Check the number of solutions
if len(controller.Solutions) != 1 {
t.Errorf("Expected 1 solution, got %d", len(controller.Solutions))
}
}