|
|
@@ -31,21 +31,25 @@ define([
|
|
|
expect(tokens[6].value).to.be('second');
|
|
|
});
|
|
|
|
|
|
+ it('should tokenize metric expression with number segments', function() {
|
|
|
+ var lexer = new Lexer("metric.10.12_10.test");
|
|
|
+ var tokens = lexer.tokenize();
|
|
|
+ expect(tokens[0].type).to.be('identifier');
|
|
|
+ expect(tokens[2].type).to.be('identifier');
|
|
|
+ expect(tokens[2].value).to.be('10');
|
|
|
+ expect(tokens[4].value).to.be('12_10');
|
|
|
+ expect(tokens[4].type).to.be('identifier');
|
|
|
+ });
|
|
|
|
|
|
- it('should tokenize functions and args', function() {
|
|
|
- var lexer = new Lexer("sum(metric.test, 12, 'test')");
|
|
|
+ it('should tokenize func call with numbered metric and number arg', function() {
|
|
|
+ var lexer = new Lexer("scale(metric.10, 15)");
|
|
|
var tokens = lexer.tokenize();
|
|
|
- expect(tokens[0].value).to.be('sum');
|
|
|
expect(tokens[0].type).to.be('identifier');
|
|
|
- expect(tokens[1].value).to.be('(');
|
|
|
- expect(tokens[1].type).to.be('(');
|
|
|
- expect(tokens[5].type).to.be(',');
|
|
|
- expect(tokens[5].value).to.be(',');
|
|
|
+ expect(tokens[2].type).to.be('identifier');
|
|
|
+ expect(tokens[2].value).to.be('metric');
|
|
|
+ expect(tokens[4].value).to.be('10');
|
|
|
+ expect(tokens[4].type).to.be('number');
|
|
|
expect(tokens[6].type).to.be('number');
|
|
|
- expect(tokens[6].value).to.be('12');
|
|
|
- expect(tokens[8].type).to.be('string');
|
|
|
- expect(tokens[8].value).to.be('test');
|
|
|
- expect(tokens[tokens.length - 1].value).to.be(')');
|
|
|
});
|
|
|
|
|
|
it('should tokenize metric with template parameter', function() {
|