From c73844fd51067a95a7f38fbdea2819db5ba4e989 Mon Sep 17 00:00:00 2001 From: Victor Date: Thu, 4 Apr 2019 12:46:39 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D1=82=D1=80=D0=BE=D0=B3=D0=BE=D0=B5=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B5=D0=BE=D0=B1=D1=80=D0=B0=D0=B7=D0=BE=D0=B2?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D0=B5=20=D1=81=D1=82=D1=80=D0=BE=D0=BA=20?= =?UTF-8?q?=D0=B2=20=D1=87=D0=B8=D1=81=D0=BB=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/annimon/ownlang/lib/StringValue.java | 12 ++---------- .../java/com/annimon/ownlang/parser/ParserTest.java | 7 +++++-- .../ownlang/parser/ast/VariableExpressionTest.java | 3 ++- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/annimon/ownlang/lib/StringValue.java b/src/main/java/com/annimon/ownlang/lib/StringValue.java index 91ca490..d58f59f 100644 --- a/src/main/java/com/annimon/ownlang/lib/StringValue.java +++ b/src/main/java/com/annimon/ownlang/lib/StringValue.java @@ -87,20 +87,12 @@ public final class StringValue implements Value { @Override public int asInt() { - try { - return Integer.parseInt(value); - } catch (NumberFormatException e) { - return 0; - } + return Integer.parseInt(value); } @Override public double asNumber() { - try { - return Double.parseDouble(value); - } catch (NumberFormatException e) { - return 0; - } + return Double.parseDouble(value); } @Override diff --git a/src/test/java/com/annimon/ownlang/parser/ParserTest.java b/src/test/java/com/annimon/ownlang/parser/ParserTest.java index 598a798..9a473d5 100644 --- a/src/test/java/com/annimon/ownlang/parser/ParserTest.java +++ b/src/test/java/com/annimon/ownlang/parser/ParserTest.java @@ -35,8 +35,11 @@ public class ParserTest { BlockStatement program = assertExpression(input, expected); program.execute(); final Value actual = Variables.get("a"); - assertEquals(expectedValue.asNumber(), actual.asNumber(), 0.001); - assertEquals(expectedValue.asString(), actual.asString()); + try { + assertEquals(expectedValue.asNumber(), actual.asNumber(), 0.001); + } catch (NumberFormatException nfe) { + assertEquals(expectedValue.asString(), actual.asString()); + } } private static BlockStatement assertExpression(String input, Expression expected) { diff --git a/src/test/java/com/annimon/ownlang/parser/ast/VariableExpressionTest.java b/src/test/java/com/annimon/ownlang/parser/ast/VariableExpressionTest.java index 1478368..36ccbde 100644 --- a/src/test/java/com/annimon/ownlang/parser/ast/VariableExpressionTest.java +++ b/src/test/java/com/annimon/ownlang/parser/ast/VariableExpressionTest.java @@ -1,6 +1,7 @@ package com.annimon.ownlang.parser.ast; import static com.annimon.ownlang.parser.ast.ASTHelper.*; +import com.annimon.ownlang.exceptions.VariableDoesNotExistsException; import org.junit.Test; /** @@ -26,7 +27,7 @@ public class VariableExpressionTest { assertValue(number(8), var("a").eval()); } - @Test(expected = RuntimeException.class) + @Test(expected = VariableDoesNotExistsException.class) public void testUnknownVariable() { var("a").eval(); }