Merge pull request #44 from serratus/issue-43
Issue 43: Configurable area for localization/detectionpull/62/head
commit
765cbfbcbb
File diff suppressed because one or more lines are too long
@ -0,0 +1,131 @@
|
||||
|
||||
define(['barcode_locator', 'config', 'html_utils'],
|
||||
function(BarcodeLocator, Config, HtmlUtils){
|
||||
|
||||
describe('checkImageConstraints', function() {
|
||||
var config,
|
||||
inputStream,
|
||||
imageSize,
|
||||
streamConfig = {};
|
||||
|
||||
beforeEach(function() {
|
||||
imageSize = {
|
||||
x: 640, y: 480
|
||||
};
|
||||
config = HtmlUtils.mergeObjects({}, Config);
|
||||
inputStream = {
|
||||
getWidth: function() {
|
||||
return imageSize.x;
|
||||
},
|
||||
getHeight: function() {
|
||||
return imageSize.y;
|
||||
},
|
||||
setWidth: function() {},
|
||||
setHeight: function() {},
|
||||
setTopRight: function() {},
|
||||
setCanvasSize: function() {},
|
||||
getConfig: function() {
|
||||
return streamConfig;
|
||||
}
|
||||
};
|
||||
sinon.stub(inputStream, "setWidth", function(width) {
|
||||
imageSize.x = width;
|
||||
});
|
||||
sinon.stub(inputStream, "setHeight", function(height) {
|
||||
imageSize.y = height;
|
||||
});
|
||||
sinon.stub(inputStream, "setTopRight");
|
||||
sinon.stub(inputStream, "setCanvasSize");
|
||||
});
|
||||
|
||||
afterEach(function() {
|
||||
inputStream.setWidth.restore();
|
||||
inputStream.setHeight.restore();
|
||||
});
|
||||
|
||||
it('should not adjust the image-size if not needed', function() {
|
||||
var expected = {x: imageSize.x, y: imageSize.y};
|
||||
BarcodeLocator.checkImageConstraints(inputStream, config.locator);
|
||||
expect(inputStream.getWidth()).to.be.equal(expected.x);
|
||||
expect(inputStream.getHeight()).to.be.equal(expected.y);
|
||||
});
|
||||
|
||||
it('should adjust the image-size', function() {
|
||||
var expected = {x: imageSize.x, y: imageSize.y};
|
||||
|
||||
config.locator.halfSample = true;
|
||||
imageSize.y += 1;
|
||||
BarcodeLocator.checkImageConstraints(inputStream, config.locator);
|
||||
expect(inputStream.getWidth()).to.be.equal(expected.x);
|
||||
expect(inputStream.getHeight()).to.be.equal(expected.y);
|
||||
});
|
||||
|
||||
it('should adjust the image-size', function() {
|
||||
var expected = {x: imageSize.x, y: imageSize.y};
|
||||
|
||||
imageSize.y += 1;
|
||||
config.locator.halfSample = false;
|
||||
BarcodeLocator.checkImageConstraints(inputStream, config.locator);
|
||||
expect(inputStream.getHeight()).to.be.equal(expected.y);
|
||||
expect(inputStream.getWidth()).to.be.equal(expected.x);
|
||||
});
|
||||
|
||||
it("should take the defined area into account", function() {
|
||||
var expectedSize = {
|
||||
x: 420,
|
||||
y: 315
|
||||
},
|
||||
expectedTopRight = {
|
||||
x: 115,
|
||||
y: 52
|
||||
},
|
||||
expectedCanvasSize = {
|
||||
x: 640,
|
||||
y: 480
|
||||
};
|
||||
|
||||
streamConfig.area = {
|
||||
top: "11%",
|
||||
right: "15%",
|
||||
bottom: "20%",
|
||||
left: "18%"
|
||||
};
|
||||
|
||||
config.locator.halfSample = false;
|
||||
BarcodeLocator.checkImageConstraints(inputStream, config.locator);
|
||||
expect(inputStream.getHeight()).to.be.equal(expectedSize.y);
|
||||
expect(inputStream.getWidth()).to.be.equal(expectedSize.x);
|
||||
expect(inputStream.setTopRight.getCall(0).args[0]).to.deep.equal(expectedTopRight);
|
||||
expect(inputStream.setCanvasSize.getCall(0).args[0]).to.deep.equal(expectedCanvasSize);
|
||||
});
|
||||
|
||||
it("should return the original size if set to full image", function() {
|
||||
var expectedSize = {
|
||||
x: 640,
|
||||
y: 480
|
||||
},
|
||||
expectedTopRight = {
|
||||
x: 0,
|
||||
y: 0
|
||||
},
|
||||
expectedCanvasSize = {
|
||||
x: 640,
|
||||
y: 480
|
||||
};
|
||||
|
||||
streamConfig.area = {
|
||||
top: "0%",
|
||||
right: "0%",
|
||||
bottom: "0%",
|
||||
left: "0%"
|
||||
};
|
||||
|
||||
config.locator.halfSample = false;
|
||||
BarcodeLocator.checkImageConstraints(inputStream, config.locator);
|
||||
expect(inputStream.getHeight()).to.be.equal(expectedSize.y);
|
||||
expect(inputStream.getWidth()).to.be.equal(expectedSize.x);
|
||||
expect(inputStream.setTopRight.getCall(0).args[0]).to.deep.equal(expectedTopRight);
|
||||
expect(inputStream.setCanvasSize.getCall(0).args[0]).to.deep.equal(expectedCanvasSize);
|
||||
});
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue