package solver import ( "slices" "testing" "gitea.ligthert.net/golang/sudoku-funpark/controller" "gitea.ligthert.net/golang/sudoku-funpark/outputter" ) // TestfindBlocks tests the findBlocks function. // It defines the solver struct // and calls the findBlocks function with a row and a slice of rows. // It then checks if the slice of rows is as expected. func TestFindBlocks(t *testing.T) { // Create a new Solver struct. solver := Solver{} // Create outputter struct. outp := outputter.Outputter{} // Set the output type to human. outp.OutputType = "human" // Set the outputter of the solver to the outputter. solver.Outp = &outp // Create a controller struct. controller := controller.Controller{} // Set the controller of the solver to the controller. solver.Controller = &controller // Execute the loadBlocks function. solver.LoadBlocks() // Provide controller.row1 with a value. // This is the row that will be used in the findBlocks function. controller.Row1 = "769104802" // Call the findBlocks function with the row and the slice of rows. solver.findBlocks(&controller.Row1, &solver.row1s) // A slice with the expected results. expected := []string{"769154832", "769134852"} // Check if the slice of rows1 is same as expected variable. if slices.Equal(solver.row1s, expected) { t.Errorf("Expected %v, got %v", expected, solver.row1s) } }