91 lines
3.0 KiB
Go
91 lines
3.0 KiB
Go
package solver
|
|
|
|
import (
|
|
"slices"
|
|
"testing"
|
|
|
|
"gitea.ligthert.net/golang/sudoku-funpark/controller"
|
|
"gitea.ligthert.net/golang/sudoku-funpark/outputter"
|
|
)
|
|
|
|
// This functions tests the PopulateBlocks function.
|
|
// It does this by creating a small set of rows and then
|
|
// calling the PopulateBlocks function. It then checks
|
|
// if the number of blocks is as expected.
|
|
func TestPopulateBlocks(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()
|
|
|
|
// Create a set of rows
|
|
// Using the following values: [769154832 154832769 832769154 671945328 945328671 328671945 597416283 416283597 283597416]
|
|
solver.Controller.Row1 = "769154800"
|
|
solver.Controller.Row2 = "154832700"
|
|
solver.Controller.Row3 = "832769100"
|
|
solver.Controller.Row4 = "671945300"
|
|
solver.Controller.Row5 = "945328600"
|
|
solver.Controller.Row6 = "328671900"
|
|
solver.Controller.Row7 = "597416200"
|
|
solver.Controller.Row8 = "416283500"
|
|
solver.Controller.Row9 = "283597400"
|
|
|
|
// Call the PopulateBlocks function
|
|
solver.PopulateBlocks()
|
|
|
|
// Check if the number of blocks is as expected
|
|
if solver.Iter != 512 {
|
|
t.Errorf("Expected 19683 blocks, got %d", solver.Iter)
|
|
}
|
|
|
|
// Check if solver.row1s is as expected
|
|
if slices.Compare(solver.row1s, []string{"769154823", "769154832"}) != 0 {
|
|
t.Errorf("Expected [769154832, 769154823], got %s", solver.row1s)
|
|
}
|
|
|
|
// check if solver.row2s is as expected
|
|
if slices.Compare(solver.row2s, []string{"154832769", "154832796"}) != 0 {
|
|
t.Errorf("Expected [154832769, 154832796], got %s", solver.row2s)
|
|
}
|
|
|
|
// check if solver.row3s is as expected
|
|
if slices.Compare(solver.row3s, []string{"832769145", "832769154"}) != 0 {
|
|
t.Errorf("Expected [832769154, 832769145], got %s", solver.row3s)
|
|
}
|
|
|
|
// check if solver.row4s is as expected
|
|
if slices.Compare(solver.row4s, []string{"671945328", "671945382"}) != 0 {
|
|
t.Errorf("Expected [671945328, 671945382], got %s", solver.row4s)
|
|
}
|
|
|
|
// check if solver.row5s is as expected
|
|
if slices.Compare(solver.row5s, []string{"945328617", "945328671"}) != 0 {
|
|
t.Errorf("Expected [945328617, 945328671], got %s", solver.row5s)
|
|
}
|
|
|
|
// check if solver.row6s is as expected
|
|
if slices.Compare(solver.row6s, []string{"328671945", "328671954"}) != 0 {
|
|
t.Errorf("Expected [328671945, 328671954], got %s", solver.row6s)
|
|
}
|
|
|
|
// check if solver.row7s is as expected
|
|
if slices.Compare(solver.row7s, []string{"597416238", "597416283"}) != 0 {
|
|
t.Errorf("Expected [597416238, 597416283], got %s", solver.row7s)
|
|
}
|
|
|
|
// check if solver.row8s is as expected
|
|
if slices.Compare(solver.row8s, []string{"416283579", "416283597"}) != 0 {
|
|
t.Errorf("Expected [416283579, 416283597], got %s", solver.row8s)
|
|
}
|
|
|
|
// check if solver.row9s is as expected
|
|
if slices.Compare(solver.row9s, []string{"283597416", "283597461"}) != 0 {
|
|
t.Errorf("Expected [283597416, 283597461], got %s", solver.row9s)
|
|
}
|
|
|
|
}
|