| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- package solver
- import (
- "testing"
- "gitea.ligthert.net/golang/sudoku-funpark/controller"
- "gitea.ligthert.net/golang/sudoku-funpark/outputter"
- )
- // Function to test the setWorkload function.
- func TestSetWorkload(t *testing.T) {
- // Create a new Solver struct.
- solver := Solver{}
- // Create outputter struct.
- outp := outputter.Outputter{}
- // Set the output type to human.
- outp.OutputType = "short"
- // 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"
- // Fill the other rows with values.
- solver.row2s = []string{"769104802"}
- solver.row3s = []string{"769104802"}
- solver.row4s = []string{"769104802"}
- solver.row5s = []string{"769104802"}
- solver.row6s = []string{"769104802"}
- solver.row7s = []string{"769104802"}
- solver.row8s = []string{"769104802"}
- solver.row9s = []string{"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
- // Set the part of the workload that the first agent will do.
- solver.Controller.Part = 1
- // Call the splitWorkload function.
- agents := solver.splitWorkload()
- // Run the setWorkload function.
- solver.setWorkload(agents)
- // Check if the solver.row1s slice is as expected.
- if len(solver.row1s) != 1 {
- t.Errorf("Expected 1, got %v", len(solver.row1s))
- }
- // Check if the solver.Iter value is as expected.
- if solver.Iter != 1 {
- t.Errorf("Expected 9, got %v", solver.Iter)
- }
- }
|