Index: editor/tools/plugins/com.google.dart.engine_test/src/com/google/dart/engine/internal/object/DartObjectImplTest.java |
diff --git a/editor/tools/plugins/com.google.dart.engine_test/src/com/google/dart/engine/internal/object/DartObjectImplTest.java b/editor/tools/plugins/com.google.dart.engine_test/src/com/google/dart/engine/internal/object/DartObjectImplTest.java |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ff2fcb498152322196f2171b46e573a0e8d1a0ce |
--- /dev/null |
+++ b/editor/tools/plugins/com.google.dart.engine_test/src/com/google/dart/engine/internal/object/DartObjectImplTest.java |
@@ -0,0 +1,1870 @@ |
+/* |
+ * Copyright (c) 2013, the Dart project authors. |
+ * |
+ * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except |
+ * in compliance with the License. You may obtain a copy of the License at |
+ * |
+ * http://www.eclipse.org/legal/epl-v10.html |
+ * |
+ * Unless required by applicable law or agreed to in writing, software distributed under the License |
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express |
+ * or implied. See the License for the specific language governing permissions and limitations under |
+ * the License. |
+ */ |
+package com.google.dart.engine.internal.object; |
+ |
+import com.google.dart.engine.EngineTestCase; |
+import com.google.dart.engine.internal.resolver.TestTypeProvider; |
+import com.google.dart.engine.internal.resolver.TypeProvider; |
+ |
+import java.math.BigInteger; |
+import java.util.HashMap; |
+ |
+public class DartObjectImplTest extends EngineTestCase { |
+ TypeProvider typeProvider = new TestTypeProvider(); |
+ |
+ public void test_add_invalid_knownInt() throws EvaluationException { |
+ assertAdd(null, stringValue("1"), intValue(2)); |
+ } |
+ |
+ public void test_add_knownDouble_knownDouble() throws EvaluationException { |
+ assertAdd(doubleValue(3.0), doubleValue(1.0), doubleValue(2.0)); |
+ } |
+ |
+ public void test_add_knownDouble_knownInt() throws EvaluationException { |
+ assertAdd(doubleValue(3.0), doubleValue(1.0), intValue(2)); |
+ } |
+ |
+ public void test_add_knownDouble_unknownDouble() throws EvaluationException { |
+ assertAdd(doubleValue(null), doubleValue(1.0), doubleValue(null)); |
+ } |
+ |
+ public void test_add_knownDouble_unknownInt() throws EvaluationException { |
+ assertAdd(doubleValue(null), doubleValue(1.0), intValue(null)); |
+ } |
+ |
+ public void test_add_knownInt_invalid() throws EvaluationException { |
+ assertAdd(null, intValue(1), stringValue("2")); |
+ } |
+ |
+ public void test_add_knownInt_knownInt() throws EvaluationException { |
+ assertAdd(intValue(3), intValue(1), intValue(2)); |
+ } |
+ |
+ public void test_add_knownInt_unknownDouble() throws EvaluationException { |
+ assertAdd(doubleValue(null), intValue(1), doubleValue(null)); |
+ } |
+ |
+ public void test_add_knownInt_unknownInt() throws EvaluationException { |
+ assertAdd(intValue(null), intValue(1), intValue(null)); |
+ } |
+ |
+ public void test_add_unknownDouble_knownDouble() throws EvaluationException { |
+ assertAdd(doubleValue(null), doubleValue(null), doubleValue(2.0)); |
+ } |
+ |
+ public void test_add_unknownDouble_knownInt() throws EvaluationException { |
+ assertAdd(doubleValue(null), doubleValue(null), intValue(2)); |
+ } |
+ |
+ public void test_add_unknownInt_knownDouble() throws EvaluationException { |
+ assertAdd(doubleValue(null), intValue(null), doubleValue(2.0)); |
+ } |
+ |
+ public void test_add_unknownInt_knownInt() throws EvaluationException { |
+ assertAdd(intValue(null), intValue(null), intValue(2)); |
+ } |
+ |
+ public void test_bitAnd_invalid_knownInt() throws EvaluationException { |
+ assertBitAnd(null, stringValue("6"), intValue(3)); |
+ } |
+ |
+ public void test_bitAnd_knownInt_invalid() throws EvaluationException { |
+ assertBitAnd(null, intValue(6), stringValue("3")); |
+ } |
+ |
+ public void test_bitAnd_knownInt_knownInt() throws EvaluationException { |
+ assertBitAnd(intValue(2), intValue(6), intValue(3)); |
+ } |
+ |
+ public void test_bitAnd_knownInt_unknownInt() throws EvaluationException { |
+ assertBitAnd(intValue(null), intValue(6), intValue(null)); |
+ } |
+ |
+ public void test_bitAnd_unknownInt_knownInt() throws EvaluationException { |
+ assertBitAnd(intValue(null), intValue(null), intValue(3)); |
+ } |
+ |
+ public void test_bitAnd_unknownInt_unknownInt() throws EvaluationException { |
+ assertBitAnd(intValue(null), intValue(null), intValue(null)); |
+ } |
+ |
+ public void test_bitNot_invalid() throws EvaluationException { |
+ assertBitNot(null, stringValue("6")); |
+ } |
+ |
+ public void test_bitNot_knownInt() throws EvaluationException { |
+ assertBitNot(intValue(-4), intValue(3)); |
+ } |
+ |
+ public void test_bitNot_unknownInt() throws EvaluationException { |
+ assertBitNot(intValue(null), intValue(null)); |
+ } |
+ |
+ public void test_bitOr_invalid_knownInt() throws EvaluationException { |
+ assertBitOr(null, stringValue("6"), intValue(3)); |
+ } |
+ |
+ public void test_bitOr_knownInt_invalid() throws EvaluationException { |
+ assertBitOr(null, intValue(6), stringValue("3")); |
+ } |
+ |
+ public void test_bitOr_knownInt_knownInt() throws EvaluationException { |
+ assertBitOr(intValue(7), intValue(6), intValue(3)); |
+ } |
+ |
+ public void test_bitOr_knownInt_unknownInt() throws EvaluationException { |
+ assertBitOr(intValue(null), intValue(6), intValue(null)); |
+ } |
+ |
+ public void test_bitOr_unknownInt_knownInt() throws EvaluationException { |
+ assertBitOr(intValue(null), intValue(null), intValue(3)); |
+ } |
+ |
+ public void test_bitOr_unknownInt_unknownInt() throws EvaluationException { |
+ assertBitOr(intValue(null), intValue(null), intValue(null)); |
+ } |
+ |
+ public void test_bitXor_invalid_knownInt() throws EvaluationException { |
+ assertBitXor(null, stringValue("6"), intValue(3)); |
+ } |
+ |
+ public void test_bitXor_knownInt_invalid() throws EvaluationException { |
+ assertBitXor(null, intValue(6), stringValue("3")); |
+ } |
+ |
+ public void test_bitXor_knownInt_knownInt() throws EvaluationException { |
+ assertBitXor(intValue(5), intValue(6), intValue(3)); |
+ } |
+ |
+ public void test_bitXor_knownInt_unknownInt() throws EvaluationException { |
+ assertBitXor(intValue(null), intValue(6), intValue(null)); |
+ } |
+ |
+ public void test_bitXor_unknownInt_knownInt() throws EvaluationException { |
+ assertBitXor(intValue(null), intValue(null), intValue(3)); |
+ } |
+ |
+ public void test_bitXor_unknownInt_unknownInt() throws EvaluationException { |
+ assertBitXor(intValue(null), intValue(null), intValue(null)); |
+ } |
+ |
+ public void test_concatenate_invalid_knownString() throws EvaluationException { |
+ assertConcatenate(null, intValue(2), stringValue("def")); |
+ } |
+ |
+ public void test_concatenate_knownString_invalid() throws EvaluationException { |
+ assertConcatenate(null, stringValue("abc"), intValue(3)); |
+ } |
+ |
+ public void test_concatenate_knownString_knownString() throws EvaluationException { |
+ assertConcatenate(stringValue("abcdef"), stringValue("abc"), stringValue("def")); |
+ } |
+ |
+ public void test_concatenate_knownString_unknownString() throws EvaluationException { |
+ assertConcatenate(stringValue(null), stringValue("abc"), stringValue(null)); |
+ } |
+ |
+ public void test_concatenate_unknownString_knownString() throws EvaluationException { |
+ assertConcatenate(stringValue(null), stringValue(null), stringValue("def")); |
+ } |
+ |
+ public void test_divide_invalid_knownInt() throws EvaluationException { |
+ assertDivide(null, stringValue("6"), intValue(2)); |
+ } |
+ |
+ public void test_divide_knownDouble_knownDouble() throws EvaluationException { |
+ assertDivide(doubleValue(3.0), doubleValue(6.0), doubleValue(2.0)); |
+ } |
+ |
+ public void test_divide_knownDouble_knownInt() throws EvaluationException { |
+ assertDivide(doubleValue(3.0), doubleValue(6.0), intValue(2)); |
+ } |
+ |
+ public void test_divide_knownDouble_unknownDouble() throws EvaluationException { |
+ assertDivide(doubleValue(null), doubleValue(6.0), doubleValue(null)); |
+ } |
+ |
+ public void test_divide_knownDouble_unknownInt() throws EvaluationException { |
+ assertDivide(doubleValue(null), doubleValue(6.0), intValue(null)); |
+ } |
+ |
+ public void test_divide_knownInt_invalid() throws EvaluationException { |
+ assertDivide(null, intValue(6), stringValue("2")); |
+ } |
+ |
+ public void test_divide_knownInt_knownInt() throws EvaluationException { |
+ assertDivide(intValue(3), intValue(6), intValue(2)); |
+ } |
+ |
+ public void test_divide_knownInt_unknownDouble() throws EvaluationException { |
+ assertDivide(doubleValue(null), intValue(6), doubleValue(null)); |
+ } |
+ |
+ public void test_divide_knownInt_unknownInt() throws EvaluationException { |
+ assertDivide(intValue(null), intValue(6), intValue(null)); |
+ } |
+ |
+ public void test_divide_unknownDouble_knownDouble() throws EvaluationException { |
+ assertDivide(doubleValue(null), doubleValue(null), doubleValue(2.0)); |
+ } |
+ |
+ public void test_divide_unknownDouble_knownInt() throws EvaluationException { |
+ assertDivide(doubleValue(null), doubleValue(null), intValue(2)); |
+ } |
+ |
+ public void test_divide_unknownInt_knownDouble() throws EvaluationException { |
+ assertDivide(doubleValue(null), intValue(null), doubleValue(2.0)); |
+ } |
+ |
+ public void test_divide_unknownInt_knownInt() throws EvaluationException { |
+ assertDivide(intValue(null), intValue(null), intValue(2)); |
+ } |
+ |
+ public void test_equalEqual_bool_false() throws EvaluationException { |
+ assertEqualEqual(boolValue(false), boolValue(false), boolValue(true)); |
+ } |
+ |
+ public void test_equalEqual_bool_true() throws EvaluationException { |
+ assertEqualEqual(boolValue(true), boolValue(true), boolValue(true)); |
+ } |
+ |
+ public void test_equalEqual_bool_unknown() throws EvaluationException { |
+ assertEqualEqual(boolValue(null), boolValue(null), boolValue(false)); |
+ } |
+ |
+ public void test_equalEqual_double_false() throws EvaluationException { |
+ assertEqualEqual(boolValue(false), doubleValue(2.0), doubleValue(4.0)); |
+ } |
+ |
+ public void test_equalEqual_double_true() throws EvaluationException { |
+ assertEqualEqual(boolValue(true), doubleValue(2.0), doubleValue(2.0)); |
+ } |
+ |
+ public void test_equalEqual_double_unknown() throws EvaluationException { |
+ assertEqualEqual(boolValue(null), doubleValue(1.0), doubleValue(null)); |
+ } |
+ |
+ public void test_equalEqual_int_false() throws EvaluationException { |
+ assertEqualEqual(boolValue(false), intValue(-5), intValue(5)); |
+ } |
+ |
+ public void test_equalEqual_int_true() throws EvaluationException { |
+ assertEqualEqual(boolValue(true), intValue(5), intValue(5)); |
+ } |
+ |
+ public void test_equalEqual_int_unknown() throws EvaluationException { |
+ assertEqualEqual(boolValue(null), intValue(null), intValue(3)); |
+ } |
+ |
+ public void test_equalEqual_list_empty() throws EvaluationException { |
+ assertEqualEqual(null, listValue(), listValue()); |
+ } |
+ |
+ public void test_equalEqual_list_false() throws EvaluationException { |
+ assertEqualEqual(null, listValue(), listValue()); |
+ } |
+ |
+ public void test_equalEqual_map_empty() throws EvaluationException { |
+ assertEqualEqual(null, mapValue(), mapValue()); |
+ } |
+ |
+ public void test_equalEqual_map_false() throws EvaluationException { |
+ assertEqualEqual(null, mapValue(), mapValue()); |
+ } |
+ |
+ public void test_equalEqual_null() throws EvaluationException { |
+ assertEqualEqual(boolValue(true), nullValue(), nullValue()); |
+ } |
+ |
+ public void test_equalEqual_string_false() throws EvaluationException { |
+ assertEqualEqual(boolValue(false), stringValue("abc"), stringValue("def")); |
+ } |
+ |
+ public void test_equalEqual_string_true() throws EvaluationException { |
+ assertEqualEqual(boolValue(true), stringValue("abc"), stringValue("abc")); |
+ } |
+ |
+ public void test_equalEqual_string_unknown() throws EvaluationException { |
+ assertEqualEqual(boolValue(null), stringValue(null), stringValue("def")); |
+ } |
+ |
+ public void test_equals_list_false_differentSizes() throws EvaluationException { |
+ assertFalse(listValue(boolValue(true)).equals(listValue(boolValue(true), boolValue(false)))); |
+ } |
+ |
+ public void test_equals_list_false_sameSize() throws EvaluationException { |
+ assertFalse(listValue(boolValue(true)).equals(listValue(boolValue(false)))); |
+ } |
+ |
+ public void test_equals_list_true_empty() throws EvaluationException { |
+ assertEquals(listValue(), listValue()); |
+ } |
+ |
+ public void test_equals_list_true_nonEmpty() throws EvaluationException { |
+ assertEquals(listValue(boolValue(true)), listValue(boolValue(true))); |
+ } |
+ |
+ public void test_equals_map_true_empty() throws EvaluationException { |
+ assertEquals(mapValue(), mapValue()); |
+ } |
+ |
+ public void test_equals_symbol_false() throws EvaluationException { |
+ assertFalse(symbolValue("a").equals(symbolValue("b"))); |
+ } |
+ |
+ public void test_equals_symbol_true() throws EvaluationException { |
+ assertEquals(symbolValue("a"), symbolValue("a")); |
+ } |
+ |
+ public void test_greaterThan_invalid_knownInt() throws EvaluationException { |
+ assertGreaterThan(null, stringValue("1"), intValue(2)); |
+ } |
+ |
+ public void test_greaterThan_knownDouble_knownDouble_false() throws EvaluationException { |
+ assertGreaterThan(boolValue(false), doubleValue(1.0), doubleValue(2.0)); |
+ } |
+ |
+ public void test_greaterThan_knownDouble_knownDouble_true() throws EvaluationException { |
+ assertGreaterThan(boolValue(true), doubleValue(2.0), doubleValue(1.0)); |
+ } |
+ |
+ public void test_greaterThan_knownDouble_knownInt_false() throws EvaluationException { |
+ assertGreaterThan(boolValue(false), doubleValue(1.0), intValue(2)); |
+ } |
+ |
+ public void test_greaterThan_knownDouble_knownInt_true() throws EvaluationException { |
+ assertGreaterThan(boolValue(true), doubleValue(2.0), intValue(1)); |
+ } |
+ |
+ public void test_greaterThan_knownDouble_unknownDouble() throws EvaluationException { |
+ assertGreaterThan(boolValue(null), doubleValue(1.0), doubleValue(null)); |
+ } |
+ |
+ public void test_greaterThan_knownDouble_unknownInt() throws EvaluationException { |
+ assertGreaterThan(boolValue(null), doubleValue(1.0), intValue(null)); |
+ } |
+ |
+ public void test_greaterThan_knownInt_invalid() throws EvaluationException { |
+ assertGreaterThan(null, intValue(1), stringValue("2")); |
+ } |
+ |
+ public void test_greaterThan_knownInt_knownInt_false() throws EvaluationException { |
+ assertGreaterThan(boolValue(false), intValue(1), intValue(2)); |
+ } |
+ |
+ public void test_greaterThan_knownInt_knownInt_true() throws EvaluationException { |
+ assertGreaterThan(boolValue(true), intValue(2), intValue(1)); |
+ } |
+ |
+ public void test_greaterThan_knownInt_unknownDouble() throws EvaluationException { |
+ assertGreaterThan(boolValue(null), intValue(1), doubleValue(null)); |
+ } |
+ |
+ public void test_greaterThan_knownInt_unknownInt() throws EvaluationException { |
+ assertGreaterThan(boolValue(null), intValue(1), intValue(null)); |
+ } |
+ |
+ public void test_greaterThan_unknownDouble_knownDouble() throws EvaluationException { |
+ assertGreaterThan(boolValue(null), doubleValue(null), doubleValue(2.0)); |
+ } |
+ |
+ public void test_greaterThan_unknownDouble_knownInt() throws EvaluationException { |
+ assertGreaterThan(boolValue(null), doubleValue(null), intValue(2)); |
+ } |
+ |
+ public void test_greaterThan_unknownInt_knownDouble() throws EvaluationException { |
+ assertGreaterThan(boolValue(null), intValue(null), doubleValue(2.0)); |
+ } |
+ |
+ public void test_greaterThan_unknownInt_knownInt() throws EvaluationException { |
+ assertGreaterThan(boolValue(null), intValue(null), intValue(2)); |
+ } |
+ |
+ public void test_greaterThanOrEqual_invalid_knownInt() throws EvaluationException { |
+ assertGreaterThanOrEqual(null, stringValue("1"), intValue(2)); |
+ } |
+ |
+ public void test_greaterThanOrEqual_knownDouble_knownDouble_false() throws EvaluationException { |
+ assertGreaterThanOrEqual(boolValue(false), doubleValue(1.0), doubleValue(2.0)); |
+ } |
+ |
+ public void test_greaterThanOrEqual_knownDouble_knownDouble_true() throws EvaluationException { |
+ assertGreaterThanOrEqual(boolValue(true), doubleValue(2.0), doubleValue(1.0)); |
+ } |
+ |
+ public void test_greaterThanOrEqual_knownDouble_knownInt_false() throws EvaluationException { |
+ assertGreaterThanOrEqual(boolValue(false), doubleValue(1.0), intValue(2)); |
+ } |
+ |
+ public void test_greaterThanOrEqual_knownDouble_knownInt_true() throws EvaluationException { |
+ assertGreaterThanOrEqual(boolValue(true), doubleValue(2.0), intValue(1)); |
+ } |
+ |
+ public void test_greaterThanOrEqual_knownDouble_unknownDouble() throws EvaluationException { |
+ assertGreaterThanOrEqual(boolValue(null), doubleValue(1.0), doubleValue(null)); |
+ } |
+ |
+ public void test_greaterThanOrEqual_knownDouble_unknownInt() throws EvaluationException { |
+ assertGreaterThanOrEqual(boolValue(null), doubleValue(1.0), intValue(null)); |
+ } |
+ |
+ public void test_greaterThanOrEqual_knownInt_invalid() throws EvaluationException { |
+ assertGreaterThanOrEqual(null, intValue(1), stringValue("2")); |
+ } |
+ |
+ public void test_greaterThanOrEqual_knownInt_knownInt_false() throws EvaluationException { |
+ assertGreaterThanOrEqual(boolValue(false), intValue(1), intValue(2)); |
+ } |
+ |
+ public void test_greaterThanOrEqual_knownInt_knownInt_true() throws EvaluationException { |
+ assertGreaterThanOrEqual(boolValue(true), intValue(2), intValue(2)); |
+ } |
+ |
+ public void test_greaterThanOrEqual_knownInt_unknownDouble() throws EvaluationException { |
+ assertGreaterThanOrEqual(boolValue(null), intValue(1), doubleValue(null)); |
+ } |
+ |
+ public void test_greaterThanOrEqual_knownInt_unknownInt() throws EvaluationException { |
+ assertGreaterThanOrEqual(boolValue(null), intValue(1), intValue(null)); |
+ } |
+ |
+ public void test_greaterThanOrEqual_unknownDouble_knownDouble() throws EvaluationException { |
+ assertGreaterThanOrEqual(boolValue(null), doubleValue(null), doubleValue(2.0)); |
+ } |
+ |
+ public void test_greaterThanOrEqual_unknownDouble_knownInt() throws EvaluationException { |
+ assertGreaterThanOrEqual(boolValue(null), doubleValue(null), intValue(2)); |
+ } |
+ |
+ public void test_greaterThanOrEqual_unknownInt_knownDouble() throws EvaluationException { |
+ assertGreaterThanOrEqual(boolValue(null), intValue(null), doubleValue(2.0)); |
+ } |
+ |
+ public void test_greaterThanOrEqual_unknownInt_knownInt() throws EvaluationException { |
+ assertGreaterThanOrEqual(boolValue(null), intValue(null), intValue(2)); |
+ } |
+ |
+ public void test_integerDivide_invalid_knownInt() throws EvaluationException { |
+ assertIntegerDivide(null, stringValue("6"), intValue(2)); |
+ } |
+ |
+ public void test_integerDivide_knownDouble_knownDouble() throws EvaluationException { |
+ assertIntegerDivide(intValue(3), doubleValue(6.0), doubleValue(2.0)); |
+ } |
+ |
+ public void test_integerDivide_knownDouble_knownInt() throws EvaluationException { |
+ assertIntegerDivide(intValue(3), doubleValue(6.0), intValue(2)); |
+ } |
+ |
+ public void test_integerDivide_knownDouble_unknownDouble() throws EvaluationException { |
+ assertIntegerDivide(intValue(null), doubleValue(6.0), doubleValue(null)); |
+ } |
+ |
+ public void test_integerDivide_knownDouble_unknownInt() throws EvaluationException { |
+ assertIntegerDivide(intValue(null), doubleValue(6.0), intValue(null)); |
+ } |
+ |
+ public void test_integerDivide_knownInt_invalid() throws EvaluationException { |
+ assertIntegerDivide(null, intValue(6), stringValue("2")); |
+ } |
+ |
+ public void test_integerDivide_knownInt_knownInt() throws EvaluationException { |
+ assertIntegerDivide(intValue(3), intValue(6), intValue(2)); |
+ } |
+ |
+ public void test_integerDivide_knownInt_unknownDouble() throws EvaluationException { |
+ assertIntegerDivide(intValue(null), intValue(6), doubleValue(null)); |
+ } |
+ |
+ public void test_integerDivide_knownInt_unknownInt() throws EvaluationException { |
+ assertIntegerDivide(intValue(null), intValue(6), intValue(null)); |
+ } |
+ |
+ public void test_integerDivide_unknownDouble_knownDouble() throws EvaluationException { |
+ assertIntegerDivide(intValue(null), doubleValue(null), doubleValue(2.0)); |
+ } |
+ |
+ public void test_integerDivide_unknownDouble_knownInt() throws EvaluationException { |
+ assertIntegerDivide(intValue(null), doubleValue(null), intValue(2)); |
+ } |
+ |
+ public void test_integerDivide_unknownInt_knownDouble() throws EvaluationException { |
+ assertIntegerDivide(intValue(null), intValue(null), doubleValue(2.0)); |
+ } |
+ |
+ public void test_integerDivide_unknownInt_knownInt() throws EvaluationException { |
+ assertIntegerDivide(intValue(null), intValue(null), intValue(2)); |
+ } |
+ |
+ public void test_isBoolNumStringOrNull_bool_false() { |
+ assertTrue(boolValue(false).isBoolNumStringOrNull()); |
+ } |
+ |
+ public void test_isBoolNumStringOrNull_bool_true() { |
+ assertTrue(boolValue(true).isBoolNumStringOrNull()); |
+ } |
+ |
+ public void test_isBoolNumStringOrNull_bool_unknown() { |
+ assertTrue(boolValue(null).isBoolNumStringOrNull()); |
+ } |
+ |
+ public void test_isBoolNumStringOrNull_double_known() { |
+ assertTrue(doubleValue(2.3).isBoolNumStringOrNull()); |
+ } |
+ |
+ public void test_isBoolNumStringOrNull_double_unknown() { |
+ assertTrue(doubleValue(null).isBoolNumStringOrNull()); |
+ } |
+ |
+ public void test_isBoolNumStringOrNull_dynamic() { |
+ assertTrue(dynamicValue().isBoolNumStringOrNull()); |
+ } |
+ |
+ public void test_isBoolNumStringOrNull_int_known() { |
+ assertTrue(intValue(23).isBoolNumStringOrNull()); |
+ } |
+ |
+ public void test_isBoolNumStringOrNull_int_unknown() { |
+ assertTrue(intValue(null).isBoolNumStringOrNull()); |
+ } |
+ |
+ public void test_isBoolNumStringOrNull_list() { |
+ assertFalse(listValue().isBoolNumStringOrNull()); |
+ } |
+ |
+ public void test_isBoolNumStringOrNull_null() { |
+ assertTrue(nullValue().isBoolNumStringOrNull()); |
+ } |
+ |
+ public void test_isBoolNumStringOrNull_num() { |
+ assertTrue(numValue().isBoolNumStringOrNull()); |
+ } |
+ |
+ public void test_isBoolNumStringOrNull_string_known() { |
+ assertTrue(stringValue("twenty-three").isBoolNumStringOrNull()); |
+ } |
+ |
+ public void test_isBoolNumStringOrNull_string_unknown() { |
+ assertTrue(stringValue(null).isBoolNumStringOrNull()); |
+ } |
+ |
+ public void test_lessThan_invalid_knownInt() throws EvaluationException { |
+ assertLessThan(null, stringValue("1"), intValue(2)); |
+ } |
+ |
+ public void test_lessThan_knownDouble_knownDouble_false() throws EvaluationException { |
+ assertLessThan(boolValue(false), doubleValue(2.0), doubleValue(1.0)); |
+ } |
+ |
+ public void test_lessThan_knownDouble_knownDouble_true() throws EvaluationException { |
+ assertLessThan(boolValue(true), doubleValue(1.0), doubleValue(2.0)); |
+ } |
+ |
+ public void test_lessThan_knownDouble_knownInt_false() throws EvaluationException { |
+ assertLessThan(boolValue(false), doubleValue(2.0), intValue(1)); |
+ } |
+ |
+ public void test_lessThan_knownDouble_knownInt_true() throws EvaluationException { |
+ assertLessThan(boolValue(true), doubleValue(1.0), intValue(2)); |
+ } |
+ |
+ public void test_lessThan_knownDouble_unknownDouble() throws EvaluationException { |
+ assertLessThan(boolValue(null), doubleValue(1.0), doubleValue(null)); |
+ } |
+ |
+ public void test_lessThan_knownDouble_unknownInt() throws EvaluationException { |
+ assertLessThan(boolValue(null), doubleValue(1.0), intValue(null)); |
+ } |
+ |
+ public void test_lessThan_knownInt_invalid() throws EvaluationException { |
+ assertLessThan(null, intValue(1), stringValue("2")); |
+ } |
+ |
+ public void test_lessThan_knownInt_knownInt_false() throws EvaluationException { |
+ assertLessThan(boolValue(false), intValue(2), intValue(1)); |
+ } |
+ |
+ public void test_lessThan_knownInt_knownInt_true() throws EvaluationException { |
+ assertLessThan(boolValue(true), intValue(1), intValue(2)); |
+ } |
+ |
+ public void test_lessThan_knownInt_unknownDouble() throws EvaluationException { |
+ assertLessThan(boolValue(null), intValue(1), doubleValue(null)); |
+ } |
+ |
+ public void test_lessThan_knownInt_unknownInt() throws EvaluationException { |
+ assertLessThan(boolValue(null), intValue(1), intValue(null)); |
+ } |
+ |
+ public void test_lessThan_unknownDouble_knownDouble() throws EvaluationException { |
+ assertLessThan(boolValue(null), doubleValue(null), doubleValue(2.0)); |
+ } |
+ |
+ public void test_lessThan_unknownDouble_knownInt() throws EvaluationException { |
+ assertLessThan(boolValue(null), doubleValue(null), intValue(2)); |
+ } |
+ |
+ public void test_lessThan_unknownInt_knownDouble() throws EvaluationException { |
+ assertLessThan(boolValue(null), intValue(null), doubleValue(2.0)); |
+ } |
+ |
+ public void test_lessThan_unknownInt_knownInt() throws EvaluationException { |
+ assertLessThan(boolValue(null), intValue(null), intValue(2)); |
+ } |
+ |
+ public void test_lessThanOrEqual_invalid_knownInt() throws EvaluationException { |
+ assertLessThanOrEqual(null, stringValue("1"), intValue(2)); |
+ } |
+ |
+ public void test_lessThanOrEqual_knownDouble_knownDouble_false() throws EvaluationException { |
+ assertLessThanOrEqual(boolValue(false), doubleValue(2.0), doubleValue(1.0)); |
+ } |
+ |
+ public void test_lessThanOrEqual_knownDouble_knownDouble_true() throws EvaluationException { |
+ assertLessThanOrEqual(boolValue(true), doubleValue(1.0), doubleValue(2.0)); |
+ } |
+ |
+ public void test_lessThanOrEqual_knownDouble_knownInt_false() throws EvaluationException { |
+ assertLessThanOrEqual(boolValue(false), doubleValue(2.0), intValue(1)); |
+ } |
+ |
+ public void test_lessThanOrEqual_knownDouble_knownInt_true() throws EvaluationException { |
+ assertLessThanOrEqual(boolValue(true), doubleValue(1.0), intValue(2)); |
+ } |
+ |
+ public void test_lessThanOrEqual_knownDouble_unknownDouble() throws EvaluationException { |
+ assertLessThanOrEqual(boolValue(null), doubleValue(1.0), doubleValue(null)); |
+ } |
+ |
+ public void test_lessThanOrEqual_knownDouble_unknownInt() throws EvaluationException { |
+ assertLessThanOrEqual(boolValue(null), doubleValue(1.0), intValue(null)); |
+ } |
+ |
+ public void test_lessThanOrEqual_knownInt_invalid() throws EvaluationException { |
+ assertLessThanOrEqual(null, intValue(1), stringValue("2")); |
+ } |
+ |
+ public void test_lessThanOrEqual_knownInt_knownInt_false() throws EvaluationException { |
+ assertLessThanOrEqual(boolValue(false), intValue(2), intValue(1)); |
+ } |
+ |
+ public void test_lessThanOrEqual_knownInt_knownInt_true() throws EvaluationException { |
+ assertLessThanOrEqual(boolValue(true), intValue(1), intValue(2)); |
+ } |
+ |
+ public void test_lessThanOrEqual_knownInt_unknownDouble() throws EvaluationException { |
+ assertLessThanOrEqual(boolValue(null), intValue(1), doubleValue(null)); |
+ } |
+ |
+ public void test_lessThanOrEqual_knownInt_unknownInt() throws EvaluationException { |
+ assertLessThanOrEqual(boolValue(null), intValue(1), intValue(null)); |
+ } |
+ |
+ public void test_lessThanOrEqual_unknownDouble_knownDouble() throws EvaluationException { |
+ assertLessThanOrEqual(boolValue(null), doubleValue(null), doubleValue(2.0)); |
+ } |
+ |
+ public void test_lessThanOrEqual_unknownDouble_knownInt() throws EvaluationException { |
+ assertLessThanOrEqual(boolValue(null), doubleValue(null), intValue(2)); |
+ } |
+ |
+ public void test_lessThanOrEqual_unknownInt_knownDouble() throws EvaluationException { |
+ assertLessThanOrEqual(boolValue(null), intValue(null), doubleValue(2.0)); |
+ } |
+ |
+ public void test_lessThanOrEqual_unknownInt_knownInt() throws EvaluationException { |
+ assertLessThanOrEqual(boolValue(null), intValue(null), intValue(2)); |
+ } |
+ |
+ public void test_logicalAnd_false_false() throws EvaluationException { |
+ assertLogicalAnd(boolValue(false), boolValue(false), boolValue(false)); |
+ } |
+ |
+ public void test_logicalAnd_false_null() throws EvaluationException { |
+ try { |
+ assertLogicalAnd(boolValue(false), boolValue(false), nullValue()); |
+ fail("Expected EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } |
+ |
+ public void test_logicalAnd_false_string() throws EvaluationException { |
+ try { |
+ assertLogicalAnd(boolValue(false), boolValue(false), stringValue("false")); |
+ fail("Expected EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } |
+ |
+ public void test_logicalAnd_false_true() throws EvaluationException { |
+ assertLogicalAnd(boolValue(false), boolValue(false), boolValue(true)); |
+ } |
+ |
+ public void test_logicalAnd_null_false() throws EvaluationException { |
+ try { |
+ assertLogicalAnd(boolValue(false), nullValue(), boolValue(false)); |
+ fail("Expected EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } |
+ |
+ public void test_logicalAnd_null_true() throws EvaluationException { |
+ try { |
+ assertLogicalAnd(boolValue(false), nullValue(), boolValue(true)); |
+ fail("Expected EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } |
+ |
+ public void test_logicalAnd_string_false() throws EvaluationException { |
+ try { |
+ assertLogicalAnd(boolValue(false), stringValue("true"), boolValue(false)); |
+ fail("Expected EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } |
+ |
+ public void test_logicalAnd_string_true() throws EvaluationException { |
+ try { |
+ assertLogicalAnd(boolValue(false), stringValue("false"), boolValue(true)); |
+ fail("Expected EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } |
+ |
+ public void test_logicalAnd_true_false() throws EvaluationException { |
+ assertLogicalAnd(boolValue(false), boolValue(true), boolValue(false)); |
+ } |
+ |
+ public void test_logicalAnd_true_null() throws EvaluationException { |
+ assertLogicalAnd(null, boolValue(true), nullValue()); |
+ } |
+ |
+ public void test_logicalAnd_true_string() throws EvaluationException { |
+ try { |
+ assertLogicalAnd(boolValue(false), boolValue(true), stringValue("true")); |
+ fail("Expected EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } |
+ |
+ public void test_logicalAnd_true_true() throws EvaluationException { |
+ assertLogicalAnd(boolValue(true), boolValue(true), boolValue(true)); |
+ } |
+ |
+ public void test_logicalNot_false() throws EvaluationException { |
+ assertLogicalNot(boolValue(true), boolValue(false)); |
+ } |
+ |
+ public void test_logicalNot_null() throws EvaluationException { |
+ assertLogicalNot(null, nullValue()); |
+ } |
+ |
+ public void test_logicalNot_string() throws EvaluationException { |
+ try { |
+ assertLogicalNot(boolValue(true), stringValue(null)); |
+ fail("Expected EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } |
+ |
+ public void test_logicalNot_true() throws EvaluationException { |
+ assertLogicalNot(boolValue(false), boolValue(true)); |
+ } |
+ |
+ public void test_logicalNot_unknown() throws EvaluationException { |
+ assertLogicalNot(boolValue(null), boolValue(null)); |
+ } |
+ |
+ public void test_logicalOr_false_false() throws EvaluationException { |
+ assertLogicalOr(boolValue(false), boolValue(false), boolValue(false)); |
+ } |
+ |
+ public void test_logicalOr_false_null() throws EvaluationException { |
+ assertLogicalOr(null, boolValue(false), nullValue()); |
+ } |
+ |
+ public void test_logicalOr_false_string() throws EvaluationException { |
+ try { |
+ assertLogicalOr(boolValue(false), boolValue(false), stringValue("false")); |
+ fail("Expected EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } |
+ |
+ public void test_logicalOr_false_true() throws EvaluationException { |
+ assertLogicalOr(boolValue(true), boolValue(false), boolValue(true)); |
+ } |
+ |
+ public void test_logicalOr_null_false() throws EvaluationException { |
+ try { |
+ assertLogicalOr(boolValue(false), nullValue(), boolValue(false)); |
+ fail("Expected EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } |
+ |
+ public void test_logicalOr_null_true() throws EvaluationException { |
+ try { |
+ assertLogicalOr(boolValue(true), nullValue(), boolValue(true)); |
+ fail("Expected EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } |
+ |
+ public void test_logicalOr_string_false() throws EvaluationException { |
+ try { |
+ assertLogicalOr(boolValue(false), stringValue("true"), boolValue(false)); |
+ fail("Expected EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } |
+ |
+ public void test_logicalOr_string_true() throws EvaluationException { |
+ try { |
+ assertLogicalOr(boolValue(true), stringValue("false"), boolValue(true)); |
+ fail("Expected EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } |
+ |
+ public void test_logicalOr_true_false() throws EvaluationException { |
+ assertLogicalOr(boolValue(true), boolValue(true), boolValue(false)); |
+ } |
+ |
+ public void test_logicalOr_true_null() throws EvaluationException { |
+ try { |
+ assertLogicalOr(boolValue(true), boolValue(true), nullValue()); |
+ fail("Expected EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } |
+ |
+ public void test_logicalOr_true_string() throws EvaluationException { |
+ try { |
+ assertLogicalOr(boolValue(true), boolValue(true), stringValue("true")); |
+ fail("Expected EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } |
+ |
+ public void test_logicalOr_true_true() throws EvaluationException { |
+ assertLogicalOr(boolValue(true), boolValue(true), boolValue(true)); |
+ } |
+ |
+ public void test_minus_invalid_knownInt() throws EvaluationException { |
+ assertMinus(null, stringValue("4"), intValue(3)); |
+ } |
+ |
+ public void test_minus_knownDouble_knownDouble() throws EvaluationException { |
+ assertMinus(doubleValue(1.0), doubleValue(4.0), doubleValue(3.0)); |
+ } |
+ |
+ public void test_minus_knownDouble_knownInt() throws EvaluationException { |
+ assertMinus(doubleValue(1.0), doubleValue(4.0), intValue(3)); |
+ } |
+ |
+ public void test_minus_knownDouble_unknownDouble() throws EvaluationException { |
+ assertMinus(doubleValue(null), doubleValue(4.0), doubleValue(null)); |
+ } |
+ |
+ public void test_minus_knownDouble_unknownInt() throws EvaluationException { |
+ assertMinus(doubleValue(null), doubleValue(4.0), intValue(null)); |
+ } |
+ |
+ public void test_minus_knownInt_invalid() throws EvaluationException { |
+ assertMinus(null, intValue(4), stringValue("3")); |
+ } |
+ |
+ public void test_minus_knownInt_knownInt() throws EvaluationException { |
+ assertMinus(intValue(1), intValue(4), intValue(3)); |
+ } |
+ |
+ public void test_minus_knownInt_unknownDouble() throws EvaluationException { |
+ assertMinus(doubleValue(null), intValue(4), doubleValue(null)); |
+ } |
+ |
+ public void test_minus_knownInt_unknownInt() throws EvaluationException { |
+ assertMinus(intValue(null), intValue(4), intValue(null)); |
+ } |
+ |
+ public void test_minus_unknownDouble_knownDouble() throws EvaluationException { |
+ assertMinus(doubleValue(null), doubleValue(null), doubleValue(3.0)); |
+ } |
+ |
+ public void test_minus_unknownDouble_knownInt() throws EvaluationException { |
+ assertMinus(doubleValue(null), doubleValue(null), intValue(3)); |
+ } |
+ |
+ public void test_minus_unknownInt_knownDouble() throws EvaluationException { |
+ assertMinus(doubleValue(null), intValue(null), doubleValue(3.0)); |
+ } |
+ |
+ public void test_minus_unknownInt_knownInt() throws EvaluationException { |
+ assertMinus(intValue(null), intValue(null), intValue(3)); |
+ } |
+ |
+ public void test_negated_double_known() throws EvaluationException { |
+ assertNegated(doubleValue(2.0), doubleValue(-2.0)); |
+ } |
+ |
+ public void test_negated_double_unknown() throws EvaluationException { |
+ assertNegated(doubleValue(null), doubleValue(null)); |
+ } |
+ |
+ public void test_negated_int_known() throws EvaluationException { |
+ assertNegated(intValue(-3), intValue(3)); |
+ } |
+ |
+ public void test_negated_int_unknown() throws EvaluationException { |
+ assertNegated(intValue(null), intValue(null)); |
+ } |
+ |
+ public void test_negated_string() throws EvaluationException { |
+ assertNegated(null, stringValue(null)); |
+ } |
+ |
+ public void test_notEqual_bool_false() throws EvaluationException { |
+ assertNotEqual(boolValue(false), boolValue(true), boolValue(true)); |
+ } |
+ |
+ public void test_notEqual_bool_true() throws EvaluationException { |
+ assertNotEqual(boolValue(true), boolValue(false), boolValue(true)); |
+ } |
+ |
+ public void test_notEqual_bool_unknown() throws EvaluationException { |
+ assertNotEqual(boolValue(null), boolValue(null), boolValue(false)); |
+ } |
+ |
+ public void test_notEqual_double_false() throws EvaluationException { |
+ assertNotEqual(boolValue(false), doubleValue(2.0), doubleValue(2.0)); |
+ } |
+ |
+ public void test_notEqual_double_true() throws EvaluationException { |
+ assertNotEqual(boolValue(true), doubleValue(2.0), doubleValue(4.0)); |
+ } |
+ |
+ public void test_notEqual_double_unknown() throws EvaluationException { |
+ assertNotEqual(boolValue(null), doubleValue(1.0), doubleValue(null)); |
+ } |
+ |
+ public void test_notEqual_int_false() throws EvaluationException { |
+ assertNotEqual(boolValue(false), intValue(5), intValue(5)); |
+ } |
+ |
+ public void test_notEqual_int_true() throws EvaluationException { |
+ assertNotEqual(boolValue(true), intValue(-5), intValue(5)); |
+ } |
+ |
+ public void test_notEqual_int_unknown() throws EvaluationException { |
+ assertNotEqual(boolValue(null), intValue(null), intValue(3)); |
+ } |
+ |
+ public void test_notEqual_null() throws EvaluationException { |
+ assertNotEqual(boolValue(false), nullValue(), nullValue()); |
+ } |
+ |
+ public void test_notEqual_string_false() throws EvaluationException { |
+ assertNotEqual(boolValue(false), stringValue("abc"), stringValue("abc")); |
+ } |
+ |
+ public void test_notEqual_string_true() throws EvaluationException { |
+ assertNotEqual(boolValue(true), stringValue("abc"), stringValue("def")); |
+ } |
+ |
+ public void test_notEqual_string_unknown() throws EvaluationException { |
+ assertNotEqual(boolValue(null), stringValue(null), stringValue("def")); |
+ } |
+ |
+ public void test_performToString_bool_false() throws EvaluationException { |
+ assertPerformToString(stringValue("false"), boolValue(false)); |
+ } |
+ |
+ public void test_performToString_bool_true() throws EvaluationException { |
+ assertPerformToString(stringValue("true"), boolValue(true)); |
+ } |
+ |
+ public void test_performToString_bool_unknown() throws EvaluationException { |
+ assertPerformToString(stringValue(null), boolValue(null)); |
+ } |
+ |
+ public void test_performToString_double_known() throws EvaluationException { |
+ assertPerformToString(stringValue("2.0"), doubleValue(2.0)); |
+ } |
+ |
+ public void test_performToString_double_unknown() throws EvaluationException { |
+ assertPerformToString(stringValue(null), doubleValue(null)); |
+ } |
+ |
+ public void test_performToString_int_known() throws EvaluationException { |
+ assertPerformToString(stringValue("5"), intValue(5)); |
+ } |
+ |
+ public void test_performToString_int_unknown() throws EvaluationException { |
+ assertPerformToString(stringValue(null), intValue(null)); |
+ } |
+ |
+ public void test_performToString_null() throws EvaluationException { |
+ assertPerformToString(stringValue("null"), nullValue()); |
+ } |
+ |
+ public void test_performToString_string_known() throws EvaluationException { |
+ assertPerformToString(stringValue("abc"), stringValue("abc")); |
+ } |
+ |
+ public void test_performToString_string_unknown() throws EvaluationException { |
+ assertPerformToString(stringValue(null), stringValue(null)); |
+ } |
+ |
+ public void test_remainder_invalid_knownInt() throws EvaluationException { |
+ assertRemainder(null, stringValue("7"), intValue(2)); |
+ } |
+ |
+ public void test_remainder_knownDouble_knownDouble() throws EvaluationException { |
+ assertRemainder(doubleValue(1.0), doubleValue(7.0), doubleValue(2.0)); |
+ } |
+ |
+ public void test_remainder_knownDouble_knownInt() throws EvaluationException { |
+ assertRemainder(doubleValue(1.0), doubleValue(7.0), intValue(2)); |
+ } |
+ |
+ public void test_remainder_knownDouble_unknownDouble() throws EvaluationException { |
+ assertRemainder(doubleValue(null), doubleValue(7.0), doubleValue(null)); |
+ } |
+ |
+ public void test_remainder_knownDouble_unknownInt() throws EvaluationException { |
+ assertRemainder(doubleValue(null), doubleValue(6.0), intValue(null)); |
+ } |
+ |
+ public void test_remainder_knownInt_invalid() throws EvaluationException { |
+ assertRemainder(null, intValue(7), stringValue("2")); |
+ } |
+ |
+ public void test_remainder_knownInt_knownInt() throws EvaluationException { |
+ assertRemainder(intValue(1), intValue(7), intValue(2)); |
+ } |
+ |
+ public void test_remainder_knownInt_unknownDouble() throws EvaluationException { |
+ assertRemainder(doubleValue(null), intValue(7), doubleValue(null)); |
+ } |
+ |
+ public void test_remainder_knownInt_unknownInt() throws EvaluationException { |
+ assertRemainder(intValue(null), intValue(7), intValue(null)); |
+ } |
+ |
+ public void test_remainder_unknownDouble_knownDouble() throws EvaluationException { |
+ assertRemainder(doubleValue(null), doubleValue(null), doubleValue(2.0)); |
+ } |
+ |
+ public void test_remainder_unknownDouble_knownInt() throws EvaluationException { |
+ assertRemainder(doubleValue(null), doubleValue(null), intValue(2)); |
+ } |
+ |
+ public void test_remainder_unknownInt_knownDouble() throws EvaluationException { |
+ assertRemainder(doubleValue(null), intValue(null), doubleValue(2.0)); |
+ } |
+ |
+ public void test_remainder_unknownInt_knownInt() throws EvaluationException { |
+ assertRemainder(intValue(null), intValue(null), intValue(2)); |
+ } |
+ |
+ public void test_shiftLeft_invalid_knownInt() throws EvaluationException { |
+ assertShiftLeft(null, stringValue(null), intValue(3)); |
+ } |
+ |
+ public void test_shiftLeft_knownInt_invalid() throws EvaluationException { |
+ assertShiftLeft(null, intValue(6), stringValue(null)); |
+ } |
+ |
+ public void test_shiftLeft_knownInt_knownInt() throws EvaluationException { |
+ assertShiftLeft(intValue(48), intValue(6), intValue(3)); |
+ } |
+ |
+ public void test_shiftLeft_knownInt_tooLarge() throws EvaluationException { |
+ assertShiftLeft(intValue(null), intValue(6), new DartObjectImpl( |
+ typeProvider.getIntType(), |
+ new IntState(BigInteger.valueOf(Long.MAX_VALUE)))); |
+ } |
+ |
+ public void test_shiftLeft_knownInt_unknownInt() throws EvaluationException { |
+ assertShiftLeft(intValue(null), intValue(6), intValue(null)); |
+ } |
+ |
+ public void test_shiftLeft_unknownInt_knownInt() throws EvaluationException { |
+ assertShiftLeft(intValue(null), intValue(null), intValue(3)); |
+ } |
+ |
+ public void test_shiftLeft_unknownInt_unknownInt() throws EvaluationException { |
+ assertShiftLeft(intValue(null), intValue(null), intValue(null)); |
+ } |
+ |
+ public void test_shiftRight_invalid_knownInt() throws EvaluationException { |
+ assertShiftRight(null, stringValue(null), intValue(3)); |
+ } |
+ |
+ public void test_shiftRight_knownInt_invalid() throws EvaluationException { |
+ assertShiftRight(null, intValue(48), stringValue(null)); |
+ } |
+ |
+ public void test_shiftRight_knownInt_knownInt() throws EvaluationException { |
+ assertShiftRight(intValue(6), intValue(48), intValue(3)); |
+ } |
+ |
+ public void test_shiftRight_knownInt_tooLarge() throws EvaluationException { |
+ assertShiftRight(intValue(null), intValue(48), new DartObjectImpl( |
+ typeProvider.getIntType(), |
+ new IntState(BigInteger.valueOf(Long.MAX_VALUE)))); |
+ } |
+ |
+ public void test_shiftRight_knownInt_unknownInt() throws EvaluationException { |
+ assertShiftRight(intValue(null), intValue(48), intValue(null)); |
+ } |
+ |
+ public void test_shiftRight_unknownInt_knownInt() throws EvaluationException { |
+ assertShiftRight(intValue(null), intValue(null), intValue(3)); |
+ } |
+ |
+ public void test_shiftRight_unknownInt_unknownInt() throws EvaluationException { |
+ assertShiftRight(intValue(null), intValue(null), intValue(null)); |
+ } |
+ |
+ public void test_times_invalid_knownInt() throws EvaluationException { |
+ assertTimes(null, stringValue("2"), intValue(3)); |
+ } |
+ |
+ public void test_times_knownDouble_knownDouble() throws EvaluationException { |
+ assertTimes(doubleValue(6.0), doubleValue(2.0), doubleValue(3.0)); |
+ } |
+ |
+ public void test_times_knownDouble_knownInt() throws EvaluationException { |
+ assertTimes(doubleValue(6.0), doubleValue(2.0), intValue(3)); |
+ } |
+ |
+ public void test_times_knownDouble_unknownDouble() throws EvaluationException { |
+ assertTimes(doubleValue(null), doubleValue(2.0), doubleValue(null)); |
+ } |
+ |
+ public void test_times_knownDouble_unknownInt() throws EvaluationException { |
+ assertTimes(doubleValue(null), doubleValue(2.0), intValue(null)); |
+ } |
+ |
+ public void test_times_knownInt_invalid() throws EvaluationException { |
+ assertTimes(null, intValue(2), stringValue("3")); |
+ } |
+ |
+ public void test_times_knownInt_knownInt() throws EvaluationException { |
+ assertTimes(intValue(6), intValue(2), intValue(3)); |
+ } |
+ |
+ public void test_times_knownInt_unknownDouble() throws EvaluationException { |
+ assertTimes(doubleValue(null), intValue(2), doubleValue(null)); |
+ } |
+ |
+ public void test_times_knownInt_unknownInt() throws EvaluationException { |
+ assertTimes(intValue(null), intValue(2), intValue(null)); |
+ } |
+ |
+ public void test_times_unknownDouble_knownDouble() throws EvaluationException { |
+ assertTimes(doubleValue(null), doubleValue(null), doubleValue(3.0)); |
+ } |
+ |
+ public void test_times_unknownDouble_knownInt() throws EvaluationException { |
+ assertTimes(doubleValue(null), doubleValue(null), intValue(3)); |
+ } |
+ |
+ public void test_times_unknownInt_knownDouble() throws EvaluationException { |
+ assertTimes(doubleValue(null), intValue(null), doubleValue(3.0)); |
+ } |
+ |
+ public void test_times_unknownInt_knownInt() throws EvaluationException { |
+ assertTimes(intValue(null), intValue(null), intValue(3)); |
+ } |
+ |
+ /** |
+ * Assert that the result of adding the left and right operands is the expected value, or that the |
+ * operation throws an exception if the expected value is {@code null}. |
+ * |
+ * @param expected the expected result of the operation |
+ * @param leftOperand the left operand to the operation |
+ * @param rightOperand the left operand to the operation |
+ * @throws EvaluationException if the result is an exception when it should not be |
+ */ |
+ private void assertAdd(DartObjectImpl expected, DartObjectImpl leftOperand, |
+ DartObjectImpl rightOperand) throws EvaluationException { |
+ if (expected == null) { |
+ try { |
+ leftOperand.add(typeProvider, rightOperand); |
+ fail("Expected an EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } else { |
+ DartObjectImpl result = leftOperand.add(typeProvider, rightOperand); |
+ assertNotNull(result); |
+ assertEquals(expected, result); |
+ } |
+ } |
+ |
+ /** |
+ * Assert that the result of bit-anding the left and right operands is the expected value, or that |
+ * the operation throws an exception if the expected value is {@code null}. |
+ * |
+ * @param expected the expected result of the operation |
+ * @param leftOperand the left operand to the operation |
+ * @param rightOperand the left operand to the operation |
+ * @throws EvaluationException if the result is an exception when it should not be |
+ */ |
+ private void assertBitAnd(DartObjectImpl expected, DartObjectImpl leftOperand, |
+ DartObjectImpl rightOperand) throws EvaluationException { |
+ if (expected == null) { |
+ try { |
+ leftOperand.bitAnd(typeProvider, rightOperand); |
+ fail("Expected an EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } else { |
+ DartObjectImpl result = leftOperand.bitAnd(typeProvider, rightOperand); |
+ assertNotNull(result); |
+ assertEquals(expected, result); |
+ } |
+ } |
+ |
+ /** |
+ * Assert that the bit-not of the operand is the expected value, or that the operation throws an |
+ * exception if the expected value is {@code null}. |
+ * |
+ * @param expected the expected result of the operation |
+ * @param operand the operand to the operation |
+ * @throws EvaluationException if the result is an exception when it should not be |
+ */ |
+ private void assertBitNot(DartObjectImpl expected, DartObjectImpl operand) |
+ throws EvaluationException { |
+ if (expected == null) { |
+ try { |
+ operand.bitNot(typeProvider); |
+ fail("Expected an EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } else { |
+ DartObjectImpl result = operand.bitNot(typeProvider); |
+ assertNotNull(result); |
+ assertEquals(expected, result); |
+ } |
+ } |
+ |
+ /** |
+ * Assert that the result of bit-oring the left and right operands is the expected value, or that |
+ * the operation throws an exception if the expected value is {@code null}. |
+ * |
+ * @param expected the expected result of the operation |
+ * @param leftOperand the left operand to the operation |
+ * @param rightOperand the left operand to the operation |
+ * @throws EvaluationException if the result is an exception when it should not be |
+ */ |
+ private void assertBitOr(DartObjectImpl expected, DartObjectImpl leftOperand, |
+ DartObjectImpl rightOperand) throws EvaluationException { |
+ if (expected == null) { |
+ try { |
+ leftOperand.bitOr(typeProvider, rightOperand); |
+ fail("Expected an EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } else { |
+ DartObjectImpl result = leftOperand.bitOr(typeProvider, rightOperand); |
+ assertNotNull(result); |
+ assertEquals(expected, result); |
+ } |
+ } |
+ |
+ /** |
+ * Assert that the result of bit-xoring the left and right operands is the expected value, or that |
+ * the operation throws an exception if the expected value is {@code null}. |
+ * |
+ * @param expected the expected result of the operation |
+ * @param leftOperand the left operand to the operation |
+ * @param rightOperand the left operand to the operation |
+ * @throws EvaluationException if the result is an exception when it should not be |
+ */ |
+ private void assertBitXor(DartObjectImpl expected, DartObjectImpl leftOperand, |
+ DartObjectImpl rightOperand) throws EvaluationException { |
+ if (expected == null) { |
+ try { |
+ leftOperand.bitXor(typeProvider, rightOperand); |
+ fail("Expected an EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } else { |
+ DartObjectImpl result = leftOperand.bitXor(typeProvider, rightOperand); |
+ assertNotNull(result); |
+ assertEquals(expected, result); |
+ } |
+ } |
+ |
+ /** |
+ * Assert that the result of concatenating the left and right operands is the expected value, or |
+ * that the operation throws an exception if the expected value is {@code null}. |
+ * |
+ * @param expected the expected result of the operation |
+ * @param leftOperand the left operand to the operation |
+ * @param rightOperand the left operand to the operation |
+ * @throws EvaluationException if the result is an exception when it should not be |
+ */ |
+ private void assertConcatenate(DartObjectImpl expected, DartObjectImpl leftOperand, |
+ DartObjectImpl rightOperand) throws EvaluationException { |
+ if (expected == null) { |
+ try { |
+ leftOperand.concatenate(typeProvider, rightOperand); |
+ fail("Expected an EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } else { |
+ DartObjectImpl result = leftOperand.concatenate(typeProvider, rightOperand); |
+ assertNotNull(result); |
+ assertEquals(expected, result); |
+ } |
+ } |
+ |
+ /** |
+ * Assert that the result of dividing the left and right operands is the expected value, or that |
+ * the operation throws an exception if the expected value is {@code null}. |
+ * |
+ * @param expected the expected result of the operation |
+ * @param leftOperand the left operand to the operation |
+ * @param rightOperand the left operand to the operation |
+ * @throws EvaluationException if the result is an exception when it should not be |
+ */ |
+ private void assertDivide(DartObjectImpl expected, DartObjectImpl leftOperand, |
+ DartObjectImpl rightOperand) throws EvaluationException { |
+ if (expected == null) { |
+ try { |
+ leftOperand.divide(typeProvider, rightOperand); |
+ fail("Expected an EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } else { |
+ DartObjectImpl result = leftOperand.divide(typeProvider, rightOperand); |
+ assertNotNull(result); |
+ assertEquals(expected, result); |
+ } |
+ } |
+ |
+ /** |
+ * Assert that the result of comparing the left and right operands for equality is the expected |
+ * value, or that the operation throws an exception if the expected value is {@code null}. |
+ * |
+ * @param expected the expected result of the operation |
+ * @param leftOperand the left operand to the operation |
+ * @param rightOperand the left operand to the operation |
+ * @throws EvaluationException if the result is an exception when it should not be |
+ */ |
+ private void assertEqualEqual(DartObjectImpl expected, DartObjectImpl leftOperand, |
+ DartObjectImpl rightOperand) throws EvaluationException { |
+ if (expected == null) { |
+ try { |
+ leftOperand.equalEqual(typeProvider, rightOperand); |
+ fail("Expected an EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } else { |
+ DartObjectImpl result = leftOperand.equalEqual(typeProvider, rightOperand); |
+ assertNotNull(result); |
+ assertEquals(expected, result); |
+ } |
+ } |
+ |
+ /** |
+ * Assert that the result of comparing the left and right operands is the expected value, or that |
+ * the operation throws an exception if the expected value is {@code null}. |
+ * |
+ * @param expected the expected result of the operation |
+ * @param leftOperand the left operand to the operation |
+ * @param rightOperand the left operand to the operation |
+ * @throws EvaluationException if the result is an exception when it should not be |
+ */ |
+ private void assertGreaterThan(DartObjectImpl expected, DartObjectImpl leftOperand, |
+ DartObjectImpl rightOperand) throws EvaluationException { |
+ if (expected == null) { |
+ try { |
+ leftOperand.greaterThan(typeProvider, rightOperand); |
+ fail("Expected an EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } else { |
+ DartObjectImpl result = leftOperand.greaterThan(typeProvider, rightOperand); |
+ assertNotNull(result); |
+ assertEquals(expected, result); |
+ } |
+ } |
+ |
+ /** |
+ * Assert that the result of comparing the left and right operands is the expected value, or that |
+ * the operation throws an exception if the expected value is {@code null}. |
+ * |
+ * @param expected the expected result of the operation |
+ * @param leftOperand the left operand to the operation |
+ * @param rightOperand the left operand to the operation |
+ * @throws EvaluationException if the result is an exception when it should not be |
+ */ |
+ private void assertGreaterThanOrEqual(DartObjectImpl expected, DartObjectImpl leftOperand, |
+ DartObjectImpl rightOperand) throws EvaluationException { |
+ if (expected == null) { |
+ try { |
+ leftOperand.greaterThanOrEqual(typeProvider, rightOperand); |
+ fail("Expected an EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } else { |
+ DartObjectImpl result = leftOperand.greaterThanOrEqual(typeProvider, rightOperand); |
+ assertNotNull(result); |
+ assertEquals(expected, result); |
+ } |
+ } |
+ |
+ /** |
+ * Assert that the result of dividing the left and right operands as integers is the expected |
+ * value, or that the operation throws an exception if the expected value is {@code null}. |
+ * |
+ * @param expected the expected result of the operation |
+ * @param leftOperand the left operand to the operation |
+ * @param rightOperand the left operand to the operation |
+ * @throws EvaluationException if the result is an exception when it should not be |
+ */ |
+ private void assertIntegerDivide(DartObjectImpl expected, DartObjectImpl leftOperand, |
+ DartObjectImpl rightOperand) throws EvaluationException { |
+ if (expected == null) { |
+ try { |
+ leftOperand.integerDivide(typeProvider, rightOperand); |
+ fail("Expected an EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } else { |
+ DartObjectImpl result = leftOperand.integerDivide(typeProvider, rightOperand); |
+ assertNotNull(result); |
+ assertEquals(expected, result); |
+ } |
+ } |
+ |
+ /** |
+ * Assert that the result of comparing the left and right operands is the expected value, or that |
+ * the operation throws an exception if the expected value is {@code null}. |
+ * |
+ * @param expected the expected result of the operation |
+ * @param leftOperand the left operand to the operation |
+ * @param rightOperand the left operand to the operation |
+ * @throws EvaluationException if the result is an exception when it should not be |
+ */ |
+ private void assertLessThan(DartObjectImpl expected, DartObjectImpl leftOperand, |
+ DartObjectImpl rightOperand) throws EvaluationException { |
+ if (expected == null) { |
+ try { |
+ leftOperand.lessThan(typeProvider, rightOperand); |
+ fail("Expected an EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } else { |
+ DartObjectImpl result = leftOperand.lessThan(typeProvider, rightOperand); |
+ assertNotNull(result); |
+ assertEquals(expected, result); |
+ } |
+ } |
+ |
+ /** |
+ * Assert that the result of comparing the left and right operands is the expected value, or that |
+ * the operation throws an exception if the expected value is {@code null}. |
+ * |
+ * @param expected the expected result of the operation |
+ * @param leftOperand the left operand to the operation |
+ * @param rightOperand the left operand to the operation |
+ * @throws EvaluationException if the result is an exception when it should not be |
+ */ |
+ private void assertLessThanOrEqual(DartObjectImpl expected, DartObjectImpl leftOperand, |
+ DartObjectImpl rightOperand) throws EvaluationException { |
+ if (expected == null) { |
+ try { |
+ leftOperand.lessThanOrEqual(typeProvider, rightOperand); |
+ fail("Expected an EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } else { |
+ DartObjectImpl result = leftOperand.lessThanOrEqual(typeProvider, rightOperand); |
+ assertNotNull(result); |
+ assertEquals(expected, result); |
+ } |
+ } |
+ |
+ /** |
+ * Assert that the result of logical-anding the left and right operands is the expected value, or |
+ * that the operation throws an exception if the expected value is {@code null}. |
+ * |
+ * @param expected the expected result of the operation |
+ * @param leftOperand the left operand to the operation |
+ * @param rightOperand the left operand to the operation |
+ * @throws EvaluationException if the result is an exception when it should not be |
+ */ |
+ private void assertLogicalAnd(DartObjectImpl expected, DartObjectImpl leftOperand, |
+ DartObjectImpl rightOperand) throws EvaluationException { |
+ if (expected == null) { |
+ try { |
+ leftOperand.logicalAnd(typeProvider, rightOperand); |
+ fail("Expected an EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } else { |
+ DartObjectImpl result = leftOperand.logicalAnd(typeProvider, rightOperand); |
+ assertNotNull(result); |
+ assertEquals(expected, result); |
+ } |
+ } |
+ |
+ /** |
+ * Assert that the logical-not of the operand is the expected value, or that the operation throws |
+ * an exception if the expected value is {@code null}. |
+ * |
+ * @param expected the expected result of the operation |
+ * @param operand the operand to the operation |
+ * @throws EvaluationException if the result is an exception when it should not be |
+ */ |
+ private void assertLogicalNot(DartObjectImpl expected, DartObjectImpl operand) |
+ throws EvaluationException { |
+ if (expected == null) { |
+ try { |
+ operand.logicalNot(typeProvider); |
+ fail("Expected an EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } else { |
+ DartObjectImpl result = operand.logicalNot(typeProvider); |
+ assertNotNull(result); |
+ assertEquals(expected, result); |
+ } |
+ } |
+ |
+ /** |
+ * Assert that the result of logical-oring the left and right operands is the expected value, or |
+ * that the operation throws an exception if the expected value is {@code null}. |
+ * |
+ * @param expected the expected result of the operation |
+ * @param leftOperand the left operand to the operation |
+ * @param rightOperand the left operand to the operation |
+ * @throws EvaluationException if the result is an exception when it should not be |
+ */ |
+ private void assertLogicalOr(DartObjectImpl expected, DartObjectImpl leftOperand, |
+ DartObjectImpl rightOperand) throws EvaluationException { |
+ if (expected == null) { |
+ try { |
+ leftOperand.logicalOr(typeProvider, rightOperand); |
+ fail("Expected an EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } else { |
+ DartObjectImpl result = leftOperand.logicalOr(typeProvider, rightOperand); |
+ assertNotNull(result); |
+ assertEquals(expected, result); |
+ } |
+ } |
+ |
+ /** |
+ * Assert that the result of subtracting the left and right operands is the expected value, or |
+ * that the operation throws an exception if the expected value is {@code null}. |
+ * |
+ * @param expected the expected result of the operation |
+ * @param leftOperand the left operand to the operation |
+ * @param rightOperand the left operand to the operation |
+ * @throws EvaluationException if the result is an exception when it should not be |
+ */ |
+ private void assertMinus(DartObjectImpl expected, DartObjectImpl leftOperand, |
+ DartObjectImpl rightOperand) throws EvaluationException { |
+ if (expected == null) { |
+ try { |
+ leftOperand.minus(typeProvider, rightOperand); |
+ fail("Expected an EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } else { |
+ DartObjectImpl result = leftOperand.minus(typeProvider, rightOperand); |
+ assertNotNull(result); |
+ assertEquals(expected, result); |
+ } |
+ } |
+ |
+ /** |
+ * Assert that the negation of the operand is the expected value, or that the operation throws an |
+ * exception if the expected value is {@code null}. |
+ * |
+ * @param expected the expected result of the operation |
+ * @param operand the operand to the operation |
+ * @throws EvaluationException if the result is an exception when it should not be |
+ */ |
+ private void assertNegated(DartObjectImpl expected, DartObjectImpl operand) |
+ throws EvaluationException { |
+ if (expected == null) { |
+ try { |
+ operand.negated(typeProvider); |
+ fail("Expected an EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } else { |
+ DartObjectImpl result = operand.negated(typeProvider); |
+ assertNotNull(result); |
+ assertEquals(expected, result); |
+ } |
+ } |
+ |
+ /** |
+ * Assert that the result of comparing the left and right operands for inequality is the expected |
+ * value, or that the operation throws an exception if the expected value is {@code null}. |
+ * |
+ * @param expected the expected result of the operation |
+ * @param leftOperand the left operand to the operation |
+ * @param rightOperand the left operand to the operation |
+ * @throws EvaluationException if the result is an exception when it should not be |
+ */ |
+ private void assertNotEqual(DartObjectImpl expected, DartObjectImpl leftOperand, |
+ DartObjectImpl rightOperand) throws EvaluationException { |
+ if (expected == null) { |
+ try { |
+ leftOperand.notEqual(typeProvider, rightOperand); |
+ fail("Expected an EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } else { |
+ DartObjectImpl result = leftOperand.notEqual(typeProvider, rightOperand); |
+ assertNotNull(result); |
+ assertEquals(expected, result); |
+ } |
+ } |
+ |
+ /** |
+ * Assert that converting the operand to a string is the expected value, or that the operation |
+ * throws an exception if the expected value is {@code null}. |
+ * |
+ * @param expected the expected result of the operation |
+ * @param operand the operand to the operation |
+ * @throws EvaluationException if the result is an exception when it should not be |
+ */ |
+ private void assertPerformToString(DartObjectImpl expected, DartObjectImpl operand) |
+ throws EvaluationException { |
+ if (expected == null) { |
+ try { |
+ operand.performToString(typeProvider); |
+ fail("Expected an EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } else { |
+ DartObjectImpl result = operand.performToString(typeProvider); |
+ assertNotNull(result); |
+ assertEquals(expected, result); |
+ } |
+ } |
+ |
+ /** |
+ * Assert that the result of taking the remainder of the left and right operands is the expected |
+ * value, or that the operation throws an exception if the expected value is {@code null}. |
+ * |
+ * @param expected the expected result of the operation |
+ * @param leftOperand the left operand to the operation |
+ * @param rightOperand the left operand to the operation |
+ * @throws EvaluationException if the result is an exception when it should not be |
+ */ |
+ private void assertRemainder(DartObjectImpl expected, DartObjectImpl leftOperand, |
+ DartObjectImpl rightOperand) throws EvaluationException { |
+ if (expected == null) { |
+ try { |
+ leftOperand.remainder(typeProvider, rightOperand); |
+ fail("Expected an EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } else { |
+ DartObjectImpl result = leftOperand.remainder(typeProvider, rightOperand); |
+ assertNotNull(result); |
+ assertEquals(expected, result); |
+ } |
+ } |
+ |
+ /** |
+ * Assert that the result of multiplying the left and right operands is the expected value, or |
+ * that the operation throws an exception if the expected value is {@code null}. |
+ * |
+ * @param expected the expected result of the operation |
+ * @param leftOperand the left operand to the operation |
+ * @param rightOperand the left operand to the operation |
+ * @throws EvaluationException if the result is an exception when it should not be |
+ */ |
+ private void assertShiftLeft(DartObjectImpl expected, DartObjectImpl leftOperand, |
+ DartObjectImpl rightOperand) throws EvaluationException { |
+ if (expected == null) { |
+ try { |
+ leftOperand.shiftLeft(typeProvider, rightOperand); |
+ fail("Expected an EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } else { |
+ DartObjectImpl result = leftOperand.shiftLeft(typeProvider, rightOperand); |
+ assertNotNull(result); |
+ assertEquals(expected, result); |
+ } |
+ } |
+ |
+ /** |
+ * Assert that the result of multiplying the left and right operands is the expected value, or |
+ * that the operation throws an exception if the expected value is {@code null}. |
+ * |
+ * @param expected the expected result of the operation |
+ * @param leftOperand the left operand to the operation |
+ * @param rightOperand the left operand to the operation |
+ * @throws EvaluationException if the result is an exception when it should not be |
+ */ |
+ private void assertShiftRight(DartObjectImpl expected, DartObjectImpl leftOperand, |
+ DartObjectImpl rightOperand) throws EvaluationException { |
+ if (expected == null) { |
+ try { |
+ leftOperand.shiftRight(typeProvider, rightOperand); |
+ fail("Expected an EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } else { |
+ DartObjectImpl result = leftOperand.shiftRight(typeProvider, rightOperand); |
+ assertNotNull(result); |
+ assertEquals(expected, result); |
+ } |
+ } |
+ |
+ /** |
+ * Assert that the result of multiplying the left and right operands is the expected value, or |
+ * that the operation throws an exception if the expected value is {@code null}. |
+ * |
+ * @param expected the expected result of the operation |
+ * @param leftOperand the left operand to the operation |
+ * @param rightOperand the left operand to the operation |
+ * @throws EvaluationException if the result is an exception when it should not be |
+ */ |
+ private void assertTimes(DartObjectImpl expected, DartObjectImpl leftOperand, |
+ DartObjectImpl rightOperand) throws EvaluationException { |
+ if (expected == null) { |
+ try { |
+ leftOperand.times(typeProvider, rightOperand); |
+ fail("Expected an EvaluationException"); |
+ } catch (EvaluationException exception) { |
+ // Expected |
+ } |
+ } else { |
+ DartObjectImpl result = leftOperand.times(typeProvider, rightOperand); |
+ assertNotNull(result); |
+ assertEquals(expected, result); |
+ } |
+ } |
+ |
+ private DartObjectImpl boolValue(Boolean value) { |
+ if (value == null) { |
+ return new DartObjectImpl(typeProvider.getBoolType(), BoolState.UNKNOWN_VALUE); |
+ } else if (value == Boolean.FALSE) { |
+ return new DartObjectImpl(typeProvider.getBoolType(), BoolState.FALSE_STATE); |
+ } else if (value == Boolean.TRUE) { |
+ return new DartObjectImpl(typeProvider.getBoolType(), BoolState.TRUE_STATE); |
+ } |
+ fail("Invalid boolean value used in test"); |
+ return null; |
+ } |
+ |
+ private DartObjectImpl doubleValue(Double value) { |
+ if (value == null) { |
+ return new DartObjectImpl(typeProvider.getDoubleType(), DoubleState.UNKNOWN_VALUE); |
+ } else { |
+ return new DartObjectImpl(typeProvider.getDoubleType(), new DoubleState(value)); |
+ } |
+ } |
+ |
+ private DartObjectImpl dynamicValue() { |
+ return new DartObjectImpl(typeProvider.getNullType(), DynamicState.DYNAMIC_STATE); |
+ } |
+ |
+ private DartObjectImpl intValue(Integer value) { |
+ if (value == null) { |
+ return new DartObjectImpl(typeProvider.getIntType(), IntState.UNKNOWN_VALUE); |
+ } else { |
+ return new DartObjectImpl(typeProvider.getIntType(), new IntState( |
+ BigInteger.valueOf(value.longValue()))); |
+ } |
+ } |
+ |
+ private DartObjectImpl listValue(DartObjectImpl... elements) { |
+ return new DartObjectImpl(typeProvider.getListType(), new ListState(elements)); |
+ } |
+ |
+ private DartObjectImpl mapValue(DartObjectImpl... keyElementPairs) { |
+ HashMap<DartObjectImpl, DartObjectImpl> map = new HashMap<DartObjectImpl, DartObjectImpl>(); |
+ int count = keyElementPairs.length; |
+ for (int i = 0; i < count;) { |
+ map.put(keyElementPairs[i++], keyElementPairs[i++]); |
+ } |
+ return new DartObjectImpl(typeProvider.getMapType(), new MapState(map)); |
+ } |
+ |
+ private DartObjectImpl nullValue() { |
+ return new DartObjectImpl(typeProvider.getNullType(), NullState.NULL_STATE); |
+ } |
+ |
+ private DartObjectImpl numValue() { |
+ return new DartObjectImpl(typeProvider.getNullType(), NumState.UNKNOWN_VALUE); |
+ } |
+ |
+ private DartObjectImpl stringValue(String value) { |
+ if (value == null) { |
+ return new DartObjectImpl(typeProvider.getStringType(), StringState.UNKNOWN_VALUE); |
+ } else { |
+ return new DartObjectImpl(typeProvider.getStringType(), new StringState(value)); |
+ } |
+ } |
+ |
+ private DartObjectImpl symbolValue(String value) { |
+ return new DartObjectImpl(typeProvider.getSymbolType(), new SymbolState(value)); |
+ } |
+} |