Background
This ties the other three sub tickets together and is the point where the sampler actually produces a region.
Description
For each window position, cut the window out of the noise canvas, hand it to #23, multiply the position by the scale factor between the canvas and the store to work out where the returned patch goes, then write it into the store with the weight grid. Once every window has been written, read the finished grid back out and return it.
Take the pipeline and the store as arguments rather than building them in here. That is what lets this be tested with fakes and no models.
Testing, using a fake pipeline that ignores its input and returns a patch of all fives:
- Assert the finished grid is all fives everywhere, including the overlaps and the corners. If the overlaps read higher then the weights are not being divided out
- Assert the finished grid is the region's full resolution size
- Assert the fake pipeline was called once per window position and no more
- Assert the same seed and region run twice give identical grids
Background
This ties the other three sub tickets together and is the point where the sampler actually produces a region.
Description
For each window position, cut the window out of the noise canvas, hand it to #23, multiply the position by the scale factor between the canvas and the store to work out where the returned patch goes, then write it into the store with the weight grid. Once every window has been written, read the finished grid back out and return it.
Take the pipeline and the store as arguments rather than building them in here. That is what lets this be tested with fakes and no models.
Testing, using a fake pipeline that ignores its input and returns a patch of all fives: