Commit 1e79e391 by Torkel Ödegaard

Fixes #223, float arguments to functions like scale should now work as expected

parent 6f9c2211
...@@ -365,7 +365,7 @@ function (_) { ...@@ -365,7 +365,7 @@ function (_) {
this.params.splice(index, 1); this.params.splice(index, 1);
} }
else if (this.def.params[index].type === 'int') { else if (this.def.params[index].type === 'int') {
this.params[index] = parseInt(strValue, 10); this.params[index] = parseFloat(strValue, 10);
} }
else { else {
this.params[index] = strValue; this.params[index] = strValue;
......
...@@ -71,7 +71,11 @@ define([ ...@@ -71,7 +71,11 @@ define([
expect(func.text).to.be('summarize(1h, sum)'); expect(func.text).to.be('summarize(1h, sum)');
}); });
it('should parse numbers as float', function() {
var func = gfunc.createFuncInstance('scale');
func.updateParam('0.001', 0);
expect(func.params[0]).to.be(0.001);
});
}); });
describe('when updating func param with optional second parameter', function() { describe('when updating func param with optional second parameter', function() {
......
...@@ -88,6 +88,12 @@ define([ ...@@ -88,6 +88,12 @@ define([
expect(tokens[4].pos).to.be(20); expect(tokens[4].pos).to.be(20);
}); });
it('should handle float parameters', function() {
var lexer = new Lexer("alias(metric, 0.002)");
var tokens = lexer.tokenize();
expect(tokens[4].type).to.be('number');
expect(tokens[4].value).to.be('0.002');
});
}); });
......
...@@ -139,6 +139,13 @@ define([ ...@@ -139,6 +139,13 @@ define([
expect(rootNode.type).to.be('function'); expect(rootNode.type).to.be('function');
}); });
it('handle float function arguments', function() {
var parser = new Parser('scale(test, 0.002)');
var rootNode = parser.getAst();
expect(rootNode.type).to.be('function');
expect(rootNode.params[1].type).to.be('number');
expect(rootNode.params[1].value).to.be(0.002);
});
}); });
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment