Skip to content

Commit c7bc579

Browse files
authored
Merge pull request #368 from catull/fix-for-issue-367
Accept trimmed decimal numbers; i.e. make ".5" / "-.5" valid numbers
2 parents b008c8e + 4c41ade commit c7bc579

File tree

4 files changed

+20
-5
lines changed

4 files changed

+20
-5
lines changed

core/src/main/java/com/schibsted/spt/data/jslt/impl/NodeUtils.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,14 @@ private static JsonNode parseNumber(String number) {
150150
if (number.length() == 0)
151151
return null;
152152

153+
if (number.startsWith("-.")) {
154+
number = "-0." + number.substring(2);
155+
}
156+
157+
if (number.startsWith(".")) {
158+
number = "0" + number;
159+
}
160+
153161
int sign = 1;
154162
int pos = 0;
155163
if (number.charAt(0) == '-') {

core/src/test/resources/function-error-tests.json

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,6 @@
6262
"query": "number(\"123.\")",
6363
"input": "{}"
6464
},
65-
{
66-
"error": ".345",
67-
"query": "number(\".345\")",
68-
"input": "{}"
69-
},
7065
{
7166
"error": "1.1e",
7267
"query": "number(\"1.1e\")",

core/src/test/resources/function-tests.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -837,6 +837,16 @@
837837
"input" : "{}",
838838
"output" : "-0.513"
839839
},
840+
{
841+
"query" : "number(\"-.513\")",
842+
"input" : "{}",
843+
"output" : "-0.513"
844+
},
845+
{
846+
"query" : "number(\".513\")",
847+
"input" : "{}",
848+
"output" : "0.513"
849+
},
840850
{
841851
"input" : "{}",
842852
"output" : "2",

functions.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,8 @@ number(23) => 23
161161
number("23") => 23
162162
number("023") => 23
163163
number(23.0) => 23.0
164+
number(.23) => 0.23
165+
number(-.23) => -0.23
164166
number(null) => null
165167
number("ab") => error
166168
```

0 commit comments

Comments
 (0)