Skip to content

Commit 72df841

Browse files
authored
Merge pull request #176 from zephraph/scales-configurable
Allows searching for multiple scales to be configurable
2 parents 751318c + b994a3d commit 72df841

File tree

3 files changed

+28
-1
lines changed

3 files changed

+28
-1
lines changed

lib/optionalsearchparameters.class.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ export class OptionalSearchParameters {
88
* {@link OptionalSearchParameters} class constructor
99
* @param searchRegion Optional {@link Region} to limit the search space to
1010
* @param confidence Optional confidence value to configure image match confidence
11+
* @param searchMultipleScales Optional flag to indicate if the search should be conducted at different scales
1112
*/
12-
constructor(public searchRegion?: Region, public confidence?: number) {}
13+
constructor(public searchRegion?: Region, public confidence?: number, public searchMultipleScales?: boolean) {}
1314
}

lib/screen.class.spec.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,30 @@ describe("Screen.", () => {
161161
expect(visionAdapterMock.findOnScreenRegion).toHaveBeenCalledWith(expectedMatchRequest);
162162
});
163163

164+
it("should override searchMultipleScales with parameter.", async () => {
165+
// GIVEN
166+
const matchResult = new MatchResult(0.99, searchRegion);
167+
VisionAdapter.prototype.findOnScreenRegion = jest.fn(() => {
168+
return Promise.resolve(matchResult);
169+
});
170+
const visionAdapterMock = new VisionAdapter();
171+
const SUT = new Screen(visionAdapterMock);
172+
const imagePath = "test/path/to/image.png";
173+
const parameters = new LocationParameters(searchRegion, undefined, false);
174+
const expectedMatchRequest = new MatchRequest(
175+
expect.any(Image),
176+
join(cwd(), imagePath),
177+
searchRegion,
178+
SUT.config.confidence,
179+
false);
180+
181+
// WHEN
182+
await SUT.find(imagePath, parameters);
183+
184+
// THEN
185+
expect(visionAdapterMock.findOnScreenRegion).toHaveBeenCalledWith(expectedMatchRequest);
186+
});
187+
164188
it("should override both confidence and search region with parameter.", async () => {
165189
// GIVEN
166190
const minMatch = 0.8;

lib/screen.class.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ export class Screen {
8585
const minMatch = (params && params.confidence) || this.config.confidence;
8686
const searchRegion =
8787
(params && params.searchRegion) || await this.vision.screenSize();
88+
const searchMultipleScales = (params && params.searchMultipleScales)
8889

8990
const fullPathToNeedle = normalize(join(this.config.resourceDirectory, templateImageFilename));
9091

@@ -95,6 +96,7 @@ export class Screen {
9596
fullPathToNeedle,
9697
searchRegion,
9798
minMatch,
99+
searchMultipleScales
98100
);
99101

100102
return new Promise<Region>(async (resolve, reject) => {

0 commit comments

Comments
 (0)