| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- package solver
- import (
- "testing"
- "gitea.ligthert.net/golang/sudoku-funpark/controller"
- "gitea.ligthert.net/golang/sudoku-funpark/outputter"
- )
- // Test the splitWorkload function.
- func TestSplitWorkload(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)
- // Divide the work between two agents.
- solver.Controller.Split = 2
- // Call the splitWorkload function.
- agents := solver.splitWorkload()
- // Check if the agents slice is as expected.
- if agents[0] != 1 || agents[1] != 1 {
- t.Errorf("Expected [1, 1], got %v", agents)
- }
- }
|