blob: 7dbc05825e666aed2539b707187b667beff1ba9f [file] [log] [blame]
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
#source("../../../lib/compiler/implementation/ssa/types.dart");
class DartType {
const DartType(this.str);
final String str;
}
const CONFLICTING = HType.CONFLICTING;
const UNKNOWN = HType.UNKNOWN;
const BOOLEAN = HType.BOOLEAN;
const NUMBER = HType.NUMBER;
const INTEGER = HType.INTEGER;
const DOUBLE = HType.DOUBLE;
const INDEXABLE_PRIMITIVE = HType.INDEXABLE_PRIMITIVE;
const STRING = HType.STRING;
const READABLE_ARRAY = HType.READABLE_ARRAY;
const MUTABLE_ARRAY = HType.MUTABLE_ARRAY;
const FIXED_ARRAY = HType.FIXED_ARRAY;
const EXTENDABLE_ARRAY = HType.EXTENDABLE_ARRAY;
const NON_PRIMITIVE1 = const HBoundedType.nonNull(const DartType("type1"));
const NON_PRIMITIVE2 = const HBoundedType.nonNull(const DartType("type2"));
const POTENTIAL_ARRAY =
const HBoundedPotentialPrimitiveArray(const DartType('type 3'), true);
const POTENTIAL_STRING =
const HBoundedPotentialPrimitiveString(const DartType('type 4'), true);
const BOOLEAN_OR_NULL = HType.BOOLEAN_OR_NULL;
const NUMBER_OR_NULL = HType.NUMBER_OR_NULL;
const INTEGER_OR_NULL = HType.INTEGER_OR_NULL;
const DOUBLE_OR_NULL = HType.DOUBLE_OR_NULL;
const STRING_OR_NULL = HType.STRING_OR_NULL;
const NULL = HType.NULL;
void testUnion() {
Expect.equals(CONFLICTING, CONFLICTING.union(CONFLICTING));
Expect.equals(UNKNOWN, CONFLICTING.union(UNKNOWN));
Expect.equals(BOOLEAN, CONFLICTING.union(BOOLEAN));
Expect.equals(NUMBER, CONFLICTING.union(NUMBER));
Expect.equals(INTEGER, CONFLICTING.union(INTEGER));
Expect.equals(DOUBLE, CONFLICTING.union(DOUBLE));
Expect.equals(INDEXABLE_PRIMITIVE, CONFLICTING.union(INDEXABLE_PRIMITIVE));
Expect.equals(STRING, CONFLICTING.union(STRING));
Expect.equals(READABLE_ARRAY, CONFLICTING.union(READABLE_ARRAY));
Expect.equals(MUTABLE_ARRAY, CONFLICTING.union(MUTABLE_ARRAY));
Expect.equals(EXTENDABLE_ARRAY, CONFLICTING.union(EXTENDABLE_ARRAY));
Expect.equals(NON_PRIMITIVE1, CONFLICTING.union(NON_PRIMITIVE1));
Expect.equals(NON_PRIMITIVE2, CONFLICTING.union(NON_PRIMITIVE2));
Expect.equals(POTENTIAL_ARRAY, CONFLICTING.union(POTENTIAL_ARRAY));
Expect.equals(POTENTIAL_STRING, CONFLICTING.union(POTENTIAL_STRING));
Expect.equals(BOOLEAN_OR_NULL, CONFLICTING.union(BOOLEAN_OR_NULL));
Expect.equals(NUMBER_OR_NULL, CONFLICTING.union(NUMBER_OR_NULL));
Expect.equals(INTEGER_OR_NULL, CONFLICTING.union(INTEGER_OR_NULL));
Expect.equals(DOUBLE_OR_NULL, CONFLICTING.union(DOUBLE_OR_NULL));
Expect.equals(STRING_OR_NULL, CONFLICTING.union(STRING_OR_NULL));
Expect.equals(NULL, CONFLICTING.union(NULL));
Expect.equals(FIXED_ARRAY, CONFLICTING.union(FIXED_ARRAY));
Expect.equals(UNKNOWN, UNKNOWN.union(CONFLICTING));
Expect.equals(UNKNOWN, UNKNOWN.union(UNKNOWN));
Expect.equals(UNKNOWN, UNKNOWN.union(BOOLEAN));
Expect.equals(UNKNOWN, UNKNOWN.union(NUMBER));
Expect.equals(UNKNOWN, UNKNOWN.union(INTEGER));
Expect.equals(UNKNOWN, UNKNOWN.union(DOUBLE));
Expect.equals(UNKNOWN, UNKNOWN.union(INDEXABLE_PRIMITIVE));
Expect.equals(UNKNOWN, UNKNOWN.union(STRING));
Expect.equals(UNKNOWN, UNKNOWN.union(READABLE_ARRAY));
Expect.equals(UNKNOWN, UNKNOWN.union(MUTABLE_ARRAY));
Expect.equals(UNKNOWN, UNKNOWN.union(EXTENDABLE_ARRAY));
Expect.equals(UNKNOWN, UNKNOWN.union(NON_PRIMITIVE1));
Expect.equals(UNKNOWN, UNKNOWN.union(NON_PRIMITIVE2));
Expect.equals(UNKNOWN, UNKNOWN.union(POTENTIAL_ARRAY));
Expect.equals(UNKNOWN, UNKNOWN.union(POTENTIAL_STRING));
Expect.equals(UNKNOWN, UNKNOWN.union(BOOLEAN_OR_NULL));
Expect.equals(UNKNOWN, UNKNOWN.union(NUMBER_OR_NULL));
Expect.equals(UNKNOWN, UNKNOWN.union(INTEGER_OR_NULL));
Expect.equals(UNKNOWN, UNKNOWN.union(DOUBLE_OR_NULL));
Expect.equals(UNKNOWN, UNKNOWN.union(STRING_OR_NULL));
Expect.equals(UNKNOWN, UNKNOWN.union(NULL));
Expect.equals(UNKNOWN, UNKNOWN.union(FIXED_ARRAY));
Expect.equals(BOOLEAN, BOOLEAN.union(CONFLICTING));
Expect.equals(UNKNOWN, BOOLEAN.union(UNKNOWN));
Expect.equals(BOOLEAN, BOOLEAN.union(BOOLEAN));
Expect.equals(UNKNOWN, BOOLEAN.union(NUMBER));
Expect.equals(UNKNOWN, BOOLEAN.union(INTEGER));
Expect.equals(UNKNOWN, BOOLEAN.union(DOUBLE));
Expect.equals(UNKNOWN, BOOLEAN.union(INDEXABLE_PRIMITIVE));
Expect.equals(UNKNOWN, BOOLEAN.union(STRING));
Expect.equals(UNKNOWN, BOOLEAN.union(READABLE_ARRAY));
Expect.equals(UNKNOWN, BOOLEAN.union(MUTABLE_ARRAY));
Expect.equals(UNKNOWN, BOOLEAN.union(EXTENDABLE_ARRAY));
Expect.equals(UNKNOWN, BOOLEAN.union(NON_PRIMITIVE1));
Expect.equals(UNKNOWN, BOOLEAN.union(NON_PRIMITIVE2));
Expect.equals(UNKNOWN, BOOLEAN.union(POTENTIAL_ARRAY));
Expect.equals(UNKNOWN, BOOLEAN.union(POTENTIAL_STRING));
Expect.equals(BOOLEAN_OR_NULL, BOOLEAN.union(BOOLEAN_OR_NULL));
Expect.equals(UNKNOWN, BOOLEAN.union(NUMBER_OR_NULL));
Expect.equals(UNKNOWN, BOOLEAN.union(INTEGER_OR_NULL));
Expect.equals(UNKNOWN, BOOLEAN.union(DOUBLE_OR_NULL));
Expect.equals(UNKNOWN, BOOLEAN.union(STRING_OR_NULL));
Expect.equals(BOOLEAN_OR_NULL, BOOLEAN.union(NULL));
Expect.equals(UNKNOWN, BOOLEAN.union(FIXED_ARRAY));
Expect.equals(NUMBER, NUMBER.union(CONFLICTING));
Expect.equals(UNKNOWN, NUMBER.union(UNKNOWN));
Expect.equals(UNKNOWN, NUMBER.union(BOOLEAN));
Expect.equals(NUMBER, NUMBER.union(NUMBER));
Expect.equals(NUMBER, NUMBER.union(INTEGER));
Expect.equals(NUMBER, NUMBER.union(DOUBLE));
Expect.equals(UNKNOWN, NUMBER.union(INDEXABLE_PRIMITIVE));
Expect.equals(UNKNOWN, NUMBER.union(STRING));
Expect.equals(UNKNOWN, NUMBER.union(READABLE_ARRAY));
Expect.equals(UNKNOWN, NUMBER.union(MUTABLE_ARRAY));
Expect.equals(UNKNOWN, NUMBER.union(EXTENDABLE_ARRAY));
Expect.equals(UNKNOWN, NUMBER.union(NON_PRIMITIVE1));
Expect.equals(UNKNOWN, NUMBER.union(NON_PRIMITIVE2));
Expect.equals(UNKNOWN, NUMBER.union(POTENTIAL_ARRAY));
Expect.equals(UNKNOWN, NUMBER.union(POTENTIAL_STRING));
Expect.equals(UNKNOWN, NUMBER.union(BOOLEAN_OR_NULL));
Expect.equals(NUMBER_OR_NULL, NUMBER.union(NUMBER_OR_NULL));
Expect.equals(NUMBER_OR_NULL, NUMBER.union(INTEGER_OR_NULL));
Expect.equals(NUMBER_OR_NULL, NUMBER.union(DOUBLE_OR_NULL));
Expect.equals(UNKNOWN, NUMBER.union(STRING_OR_NULL));
Expect.equals(NUMBER_OR_NULL, NUMBER.union(NULL));
Expect.equals(UNKNOWN, NUMBER.union(FIXED_ARRAY));
Expect.equals(INTEGER, INTEGER.union(CONFLICTING));
Expect.equals(UNKNOWN, INTEGER.union(UNKNOWN));
Expect.equals(UNKNOWN, INTEGER.union(BOOLEAN));
Expect.equals(NUMBER, INTEGER.union(NUMBER));
Expect.equals(INTEGER, INTEGER.union(INTEGER));
Expect.equals(NUMBER, INTEGER.union(DOUBLE));
Expect.equals(UNKNOWN, INTEGER.union(INDEXABLE_PRIMITIVE));
Expect.equals(UNKNOWN, INTEGER.union(STRING));
Expect.equals(UNKNOWN, INTEGER.union(READABLE_ARRAY));
Expect.equals(UNKNOWN, INTEGER.union(MUTABLE_ARRAY));
Expect.equals(UNKNOWN, INTEGER.union(EXTENDABLE_ARRAY));
Expect.equals(UNKNOWN, INTEGER.union(NON_PRIMITIVE1));
Expect.equals(UNKNOWN, INTEGER.union(NON_PRIMITIVE2));
Expect.equals(UNKNOWN, INTEGER.union(POTENTIAL_ARRAY));
Expect.equals(UNKNOWN, INTEGER.union(POTENTIAL_STRING));
Expect.equals(UNKNOWN, INTEGER.union(BOOLEAN_OR_NULL));
Expect.equals(NUMBER_OR_NULL, INTEGER.union(NUMBER_OR_NULL));
Expect.equals(INTEGER_OR_NULL, INTEGER.union(INTEGER_OR_NULL));
Expect.equals(NUMBER_OR_NULL, INTEGER.union(DOUBLE_OR_NULL));
Expect.equals(UNKNOWN, INTEGER.union(STRING_OR_NULL));
Expect.equals(INTEGER_OR_NULL, INTEGER.union(NULL));
Expect.equals(UNKNOWN, INTEGER.union(FIXED_ARRAY));
Expect.equals(DOUBLE, DOUBLE.union(CONFLICTING));
Expect.equals(UNKNOWN, DOUBLE.union(UNKNOWN));
Expect.equals(UNKNOWN, DOUBLE.union(BOOLEAN));
Expect.equals(NUMBER, DOUBLE.union(NUMBER));
Expect.equals(NUMBER, DOUBLE.union(INTEGER));
Expect.equals(DOUBLE, DOUBLE.union(DOUBLE));
Expect.equals(UNKNOWN, DOUBLE.union(INDEXABLE_PRIMITIVE));
Expect.equals(UNKNOWN, DOUBLE.union(STRING));
Expect.equals(UNKNOWN, DOUBLE.union(READABLE_ARRAY));
Expect.equals(UNKNOWN, DOUBLE.union(MUTABLE_ARRAY));
Expect.equals(UNKNOWN, DOUBLE.union(EXTENDABLE_ARRAY));
Expect.equals(UNKNOWN, DOUBLE.union(NON_PRIMITIVE1));
Expect.equals(UNKNOWN, DOUBLE.union(NON_PRIMITIVE2));
Expect.equals(UNKNOWN, DOUBLE.union(POTENTIAL_ARRAY));
Expect.equals(UNKNOWN, DOUBLE.union(POTENTIAL_STRING));
Expect.equals(UNKNOWN, DOUBLE.union(BOOLEAN_OR_NULL));
Expect.equals(NUMBER_OR_NULL, DOUBLE.union(NUMBER_OR_NULL));
Expect.equals(NUMBER_OR_NULL, DOUBLE.union(INTEGER_OR_NULL));
Expect.equals(DOUBLE_OR_NULL, DOUBLE.union(DOUBLE_OR_NULL));
Expect.equals(UNKNOWN, DOUBLE.union(STRING_OR_NULL));
Expect.equals(DOUBLE_OR_NULL, DOUBLE.union(NULL));
Expect.equals(UNKNOWN, DOUBLE.union(FIXED_ARRAY));
Expect.equals(INDEXABLE_PRIMITIVE, INDEXABLE_PRIMITIVE.union(CONFLICTING));
Expect.equals(UNKNOWN, INDEXABLE_PRIMITIVE.union(UNKNOWN));
Expect.equals(UNKNOWN, INDEXABLE_PRIMITIVE.union(BOOLEAN));
Expect.equals(UNKNOWN, INDEXABLE_PRIMITIVE.union(NUMBER));
Expect.equals(UNKNOWN, INDEXABLE_PRIMITIVE.union(INTEGER));
Expect.equals(UNKNOWN, INDEXABLE_PRIMITIVE.union(DOUBLE));
Expect.equals(INDEXABLE_PRIMITIVE,
INDEXABLE_PRIMITIVE.union(INDEXABLE_PRIMITIVE));
Expect.equals(INDEXABLE_PRIMITIVE, INDEXABLE_PRIMITIVE.union(STRING));
Expect.equals(INDEXABLE_PRIMITIVE, INDEXABLE_PRIMITIVE.union(READABLE_ARRAY));
Expect.equals(INDEXABLE_PRIMITIVE, INDEXABLE_PRIMITIVE.union(MUTABLE_ARRAY));
Expect.equals(INDEXABLE_PRIMITIVE,
INDEXABLE_PRIMITIVE.union(EXTENDABLE_ARRAY));
Expect.equals(UNKNOWN, INDEXABLE_PRIMITIVE.union(NON_PRIMITIVE1));
Expect.equals(UNKNOWN, INDEXABLE_PRIMITIVE.union(NON_PRIMITIVE2));
Expect.equals(UNKNOWN, INDEXABLE_PRIMITIVE.union(POTENTIAL_ARRAY));
Expect.equals(UNKNOWN, INDEXABLE_PRIMITIVE.union(POTENTIAL_STRING));
Expect.equals(UNKNOWN, INDEXABLE_PRIMITIVE.union(BOOLEAN_OR_NULL));
Expect.equals(UNKNOWN, INDEXABLE_PRIMITIVE.union(NUMBER_OR_NULL));
Expect.equals(UNKNOWN, INDEXABLE_PRIMITIVE.union(INTEGER_OR_NULL));
Expect.equals(UNKNOWN, INDEXABLE_PRIMITIVE.union(DOUBLE_OR_NULL));
Expect.equals(UNKNOWN, INDEXABLE_PRIMITIVE.union(STRING_OR_NULL));
Expect.equals(UNKNOWN, INDEXABLE_PRIMITIVE.union(NULL));
Expect.equals(INDEXABLE_PRIMITIVE, INDEXABLE_PRIMITIVE.union(FIXED_ARRAY));
Expect.equals(STRING, STRING.union(CONFLICTING));
Expect.equals(UNKNOWN, STRING.union(UNKNOWN));
Expect.equals(UNKNOWN, STRING.union(BOOLEAN));
Expect.equals(UNKNOWN, STRING.union(NUMBER));
Expect.equals(UNKNOWN, STRING.union(INTEGER));
Expect.equals(UNKNOWN, STRING.union(DOUBLE));
Expect.equals(INDEXABLE_PRIMITIVE, STRING.union(INDEXABLE_PRIMITIVE));
Expect.equals(STRING, STRING.union(STRING));
Expect.equals(INDEXABLE_PRIMITIVE, STRING.union(READABLE_ARRAY));
Expect.equals(INDEXABLE_PRIMITIVE, STRING.union(MUTABLE_ARRAY));
Expect.equals(INDEXABLE_PRIMITIVE, STRING.union(EXTENDABLE_ARRAY));
Expect.equals(UNKNOWN, STRING.union(NON_PRIMITIVE1));
Expect.equals(UNKNOWN, STRING.union(NON_PRIMITIVE2));
Expect.equals(UNKNOWN, STRING.union(POTENTIAL_ARRAY));
Expect.equals(POTENTIAL_STRING, STRING.union(POTENTIAL_STRING));
Expect.equals(UNKNOWN, STRING.union(BOOLEAN_OR_NULL));
Expect.equals(UNKNOWN, STRING.union(NUMBER_OR_NULL));
Expect.equals(UNKNOWN, STRING.union(INTEGER_OR_NULL));
Expect.equals(UNKNOWN, STRING.union(DOUBLE_OR_NULL));
Expect.equals(STRING_OR_NULL, STRING.union(STRING_OR_NULL));
Expect.equals(STRING_OR_NULL, STRING.union(NULL));
Expect.equals(INDEXABLE_PRIMITIVE, STRING.union(FIXED_ARRAY));
Expect.equals(READABLE_ARRAY, READABLE_ARRAY.union(CONFLICTING));
Expect.equals(UNKNOWN, READABLE_ARRAY.union(UNKNOWN));
Expect.equals(UNKNOWN, READABLE_ARRAY.union(BOOLEAN));
Expect.equals(UNKNOWN, READABLE_ARRAY.union(NUMBER));
Expect.equals(UNKNOWN, READABLE_ARRAY.union(INTEGER));
Expect.equals(UNKNOWN, READABLE_ARRAY.union(DOUBLE));
Expect.equals(INDEXABLE_PRIMITIVE, READABLE_ARRAY.union(INDEXABLE_PRIMITIVE));
Expect.equals(INDEXABLE_PRIMITIVE, READABLE_ARRAY.union(STRING));
Expect.equals(READABLE_ARRAY, READABLE_ARRAY.union(READABLE_ARRAY));
Expect.equals(READABLE_ARRAY, READABLE_ARRAY.union(MUTABLE_ARRAY));
Expect.equals(READABLE_ARRAY, READABLE_ARRAY.union(EXTENDABLE_ARRAY));
Expect.equals(UNKNOWN, READABLE_ARRAY.union(NON_PRIMITIVE1));
Expect.equals(UNKNOWN, READABLE_ARRAY.union(NON_PRIMITIVE2));
Expect.equals(POTENTIAL_ARRAY, READABLE_ARRAY.union(POTENTIAL_ARRAY));
Expect.equals(UNKNOWN, READABLE_ARRAY.union(POTENTIAL_STRING));
Expect.equals(UNKNOWN, READABLE_ARRAY.union(BOOLEAN_OR_NULL));
Expect.equals(UNKNOWN, READABLE_ARRAY.union(NUMBER_OR_NULL));
Expect.equals(UNKNOWN, READABLE_ARRAY.union(INTEGER_OR_NULL));
Expect.equals(UNKNOWN, READABLE_ARRAY.union(DOUBLE_OR_NULL));
Expect.equals(UNKNOWN, READABLE_ARRAY.union(STRING_OR_NULL));
Expect.equals(UNKNOWN, READABLE_ARRAY.union(NULL));
Expect.equals(READABLE_ARRAY, READABLE_ARRAY.union(FIXED_ARRAY));
Expect.equals(MUTABLE_ARRAY, MUTABLE_ARRAY.union(CONFLICTING));
Expect.equals(UNKNOWN, MUTABLE_ARRAY.union(UNKNOWN));
Expect.equals(UNKNOWN, MUTABLE_ARRAY.union(BOOLEAN));
Expect.equals(UNKNOWN, MUTABLE_ARRAY.union(NUMBER));
Expect.equals(UNKNOWN, MUTABLE_ARRAY.union(INTEGER));
Expect.equals(UNKNOWN, MUTABLE_ARRAY.union(DOUBLE));
Expect.equals(INDEXABLE_PRIMITIVE, MUTABLE_ARRAY.union(INDEXABLE_PRIMITIVE));
Expect.equals(INDEXABLE_PRIMITIVE, MUTABLE_ARRAY.union(STRING));
Expect.equals(READABLE_ARRAY, MUTABLE_ARRAY.union(READABLE_ARRAY));
Expect.equals(MUTABLE_ARRAY, MUTABLE_ARRAY.union(MUTABLE_ARRAY));
Expect.equals(MUTABLE_ARRAY, MUTABLE_ARRAY.union(EXTENDABLE_ARRAY));
Expect.equals(UNKNOWN, MUTABLE_ARRAY.union(NON_PRIMITIVE1));
Expect.equals(UNKNOWN, MUTABLE_ARRAY.union(NON_PRIMITIVE2));
Expect.equals(POTENTIAL_ARRAY,MUTABLE_ARRAY.union(POTENTIAL_ARRAY));
Expect.equals(UNKNOWN, MUTABLE_ARRAY.union(POTENTIAL_STRING));
Expect.equals(UNKNOWN, MUTABLE_ARRAY.union(BOOLEAN_OR_NULL));
Expect.equals(UNKNOWN, MUTABLE_ARRAY.union(NUMBER_OR_NULL));
Expect.equals(UNKNOWN, MUTABLE_ARRAY.union(INTEGER_OR_NULL));
Expect.equals(UNKNOWN, MUTABLE_ARRAY.union(DOUBLE_OR_NULL));
Expect.equals(UNKNOWN, MUTABLE_ARRAY.union(STRING_OR_NULL));
Expect.equals(UNKNOWN, MUTABLE_ARRAY.union(NULL));
Expect.equals(MUTABLE_ARRAY, MUTABLE_ARRAY.union(FIXED_ARRAY));
Expect.equals(EXTENDABLE_ARRAY, EXTENDABLE_ARRAY.union(CONFLICTING));
Expect.equals(UNKNOWN, EXTENDABLE_ARRAY.union(UNKNOWN));
Expect.equals(UNKNOWN, EXTENDABLE_ARRAY.union(BOOLEAN));
Expect.equals(UNKNOWN, EXTENDABLE_ARRAY.union(NUMBER));
Expect.equals(UNKNOWN, EXTENDABLE_ARRAY.union(INTEGER));
Expect.equals(UNKNOWN, EXTENDABLE_ARRAY.union(DOUBLE));
Expect.equals(INDEXABLE_PRIMITIVE, EXTENDABLE_ARRAY.union(INDEXABLE_PRIMITIVE));
Expect.equals(INDEXABLE_PRIMITIVE, EXTENDABLE_ARRAY.union(STRING));
Expect.equals(READABLE_ARRAY, EXTENDABLE_ARRAY.union(READABLE_ARRAY));
Expect.equals(MUTABLE_ARRAY, EXTENDABLE_ARRAY.union(MUTABLE_ARRAY));
Expect.equals(EXTENDABLE_ARRAY, EXTENDABLE_ARRAY.union(EXTENDABLE_ARRAY));
Expect.equals(UNKNOWN, EXTENDABLE_ARRAY.union(NON_PRIMITIVE1));
Expect.equals(UNKNOWN, EXTENDABLE_ARRAY.union(NON_PRIMITIVE2));
Expect.equals(POTENTIAL_ARRAY, EXTENDABLE_ARRAY.union(POTENTIAL_ARRAY));
Expect.equals(UNKNOWN, EXTENDABLE_ARRAY.union(POTENTIAL_STRING));
Expect.equals(UNKNOWN, EXTENDABLE_ARRAY.union(BOOLEAN_OR_NULL));
Expect.equals(UNKNOWN, EXTENDABLE_ARRAY.union(NUMBER_OR_NULL));
Expect.equals(UNKNOWN, EXTENDABLE_ARRAY.union(INTEGER_OR_NULL));
Expect.equals(UNKNOWN, EXTENDABLE_ARRAY.union(DOUBLE_OR_NULL));
Expect.equals(UNKNOWN, EXTENDABLE_ARRAY.union(STRING_OR_NULL));
Expect.equals(UNKNOWN, EXTENDABLE_ARRAY.union(NULL));
Expect.equals(MUTABLE_ARRAY, EXTENDABLE_ARRAY.union(FIXED_ARRAY));
Expect.equals(NON_PRIMITIVE1, NON_PRIMITIVE1.union(CONFLICTING));
Expect.equals(UNKNOWN, NON_PRIMITIVE1.union(UNKNOWN));
Expect.equals(UNKNOWN, NON_PRIMITIVE1.union(BOOLEAN));
Expect.equals(UNKNOWN, NON_PRIMITIVE1.union(NUMBER));
Expect.equals(UNKNOWN, NON_PRIMITIVE1.union(INTEGER));
Expect.equals(UNKNOWN, NON_PRIMITIVE1.union(DOUBLE));
Expect.equals(UNKNOWN, NON_PRIMITIVE1.union(INDEXABLE_PRIMITIVE));
Expect.equals(UNKNOWN, NON_PRIMITIVE1.union(STRING));
Expect.equals(UNKNOWN, NON_PRIMITIVE1.union(READABLE_ARRAY));
Expect.equals(UNKNOWN, NON_PRIMITIVE1.union(MUTABLE_ARRAY));
Expect.equals(UNKNOWN, NON_PRIMITIVE1.union(EXTENDABLE_ARRAY));
Expect.equals(NON_PRIMITIVE1, NON_PRIMITIVE1.union(NON_PRIMITIVE1));
Expect.equals(UNKNOWN, NON_PRIMITIVE1.union(NON_PRIMITIVE2));
Expect.equals(UNKNOWN, NON_PRIMITIVE1.union(POTENTIAL_ARRAY));
Expect.equals(UNKNOWN, NON_PRIMITIVE1.union(POTENTIAL_STRING));
Expect.equals(UNKNOWN, NON_PRIMITIVE1.union(BOOLEAN_OR_NULL));
Expect.equals(UNKNOWN, NON_PRIMITIVE1.union(NUMBER_OR_NULL));
Expect.equals(UNKNOWN, NON_PRIMITIVE1.union(INTEGER_OR_NULL));
Expect.equals(UNKNOWN, NON_PRIMITIVE1.union(DOUBLE_OR_NULL));
Expect.equals(UNKNOWN, NON_PRIMITIVE1.union(STRING_OR_NULL));
Expect.isTrue(NON_PRIMITIVE1.union(NULL) is HBoundedType);
Expect.equals(UNKNOWN, NON_PRIMITIVE1.union(FIXED_ARRAY));
Expect.equals(NON_PRIMITIVE2, NON_PRIMITIVE2.union(CONFLICTING));
Expect.equals(UNKNOWN, NON_PRIMITIVE2.union(UNKNOWN));
Expect.equals(UNKNOWN, NON_PRIMITIVE2.union(BOOLEAN));
Expect.equals(UNKNOWN, NON_PRIMITIVE2.union(NUMBER));
Expect.equals(UNKNOWN, NON_PRIMITIVE2.union(INTEGER));
Expect.equals(UNKNOWN, NON_PRIMITIVE2.union(DOUBLE));
Expect.equals(UNKNOWN, NON_PRIMITIVE2.union(INDEXABLE_PRIMITIVE));
Expect.equals(UNKNOWN, NON_PRIMITIVE2.union(STRING));
Expect.equals(UNKNOWN, NON_PRIMITIVE2.union(READABLE_ARRAY));
Expect.equals(UNKNOWN, NON_PRIMITIVE2.union(MUTABLE_ARRAY));
Expect.equals(UNKNOWN, NON_PRIMITIVE2.union(EXTENDABLE_ARRAY));
Expect.equals(UNKNOWN, NON_PRIMITIVE2.union(NON_PRIMITIVE1));
Expect.equals(NON_PRIMITIVE2, NON_PRIMITIVE2.union(NON_PRIMITIVE2));
Expect.equals(UNKNOWN, NON_PRIMITIVE2.union(POTENTIAL_ARRAY));
Expect.equals(UNKNOWN, NON_PRIMITIVE2.union(POTENTIAL_STRING));
Expect.equals(UNKNOWN, NON_PRIMITIVE2.union(BOOLEAN_OR_NULL));
Expect.equals(UNKNOWN, NON_PRIMITIVE2.union(NUMBER_OR_NULL));
Expect.equals(UNKNOWN, NON_PRIMITIVE2.union(INTEGER_OR_NULL));
Expect.equals(UNKNOWN, NON_PRIMITIVE2.union(DOUBLE_OR_NULL));
Expect.equals(UNKNOWN, NON_PRIMITIVE2.union(STRING_OR_NULL));
Expect.isTrue(NON_PRIMITIVE2.union(NULL) is HBoundedType);
Expect.equals(UNKNOWN, NON_PRIMITIVE2.union(FIXED_ARRAY));
Expect.equals(POTENTIAL_ARRAY, POTENTIAL_ARRAY.union(CONFLICTING));
Expect.equals(UNKNOWN, POTENTIAL_ARRAY.union(UNKNOWN));
Expect.equals(UNKNOWN, POTENTIAL_ARRAY.union(BOOLEAN));
Expect.equals(UNKNOWN, POTENTIAL_ARRAY.union(NUMBER));
Expect.equals(UNKNOWN, POTENTIAL_ARRAY.union(INTEGER));
Expect.equals(UNKNOWN, POTENTIAL_ARRAY.union(DOUBLE));
Expect.equals(UNKNOWN, POTENTIAL_ARRAY.union(INDEXABLE_PRIMITIVE));
Expect.equals(UNKNOWN, POTENTIAL_ARRAY.union(STRING));
Expect.equals(POTENTIAL_ARRAY, POTENTIAL_ARRAY.union(READABLE_ARRAY));
Expect.equals(POTENTIAL_ARRAY, POTENTIAL_ARRAY.union(MUTABLE_ARRAY));
Expect.equals(POTENTIAL_ARRAY, POTENTIAL_ARRAY.union(EXTENDABLE_ARRAY));
Expect.equals(UNKNOWN, POTENTIAL_ARRAY.union(NON_PRIMITIVE1));
Expect.equals(UNKNOWN, POTENTIAL_ARRAY.union(NON_PRIMITIVE2));
Expect.equals(POTENTIAL_ARRAY, POTENTIAL_ARRAY.union(POTENTIAL_ARRAY));
Expect.equals(UNKNOWN, POTENTIAL_ARRAY.union(POTENTIAL_STRING));
Expect.equals(UNKNOWN, POTENTIAL_ARRAY.union(BOOLEAN_OR_NULL));
Expect.equals(UNKNOWN, POTENTIAL_ARRAY.union(NUMBER_OR_NULL));
Expect.equals(UNKNOWN, POTENTIAL_ARRAY.union(INTEGER_OR_NULL));
Expect.equals(UNKNOWN, POTENTIAL_ARRAY.union(DOUBLE_OR_NULL));
Expect.equals(UNKNOWN, POTENTIAL_ARRAY.union(STRING_OR_NULL));
Expect.equals(POTENTIAL_ARRAY, POTENTIAL_ARRAY.union(NULL));
Expect.equals(POTENTIAL_ARRAY, POTENTIAL_ARRAY.union(FIXED_ARRAY));
Expect.equals(POTENTIAL_STRING, POTENTIAL_STRING.union(CONFLICTING));
Expect.equals(UNKNOWN, POTENTIAL_STRING.union(UNKNOWN));
Expect.equals(UNKNOWN, POTENTIAL_STRING.union(BOOLEAN));
Expect.equals(UNKNOWN, POTENTIAL_STRING.union(NUMBER));
Expect.equals(UNKNOWN, POTENTIAL_STRING.union(INTEGER));
Expect.equals(UNKNOWN, POTENTIAL_STRING.union(DOUBLE));
Expect.equals(UNKNOWN, POTENTIAL_STRING.union(INDEXABLE_PRIMITIVE));
Expect.equals(POTENTIAL_STRING, POTENTIAL_STRING.union(STRING));
Expect.equals(UNKNOWN, POTENTIAL_STRING.union(READABLE_ARRAY));
Expect.equals(UNKNOWN, POTENTIAL_STRING.union(MUTABLE_ARRAY));
Expect.equals(UNKNOWN, POTENTIAL_STRING.union(EXTENDABLE_ARRAY));
Expect.equals(UNKNOWN, POTENTIAL_STRING.union(NON_PRIMITIVE1));
Expect.equals(UNKNOWN, POTENTIAL_STRING.union(NON_PRIMITIVE2));
Expect.equals(UNKNOWN, POTENTIAL_STRING.union(POTENTIAL_ARRAY));
Expect.equals(POTENTIAL_STRING, POTENTIAL_STRING.union(POTENTIAL_STRING));
Expect.equals(UNKNOWN, POTENTIAL_STRING.union(BOOLEAN_OR_NULL));
Expect.equals(UNKNOWN, POTENTIAL_STRING.union(NUMBER_OR_NULL));
Expect.equals(UNKNOWN, POTENTIAL_STRING.union(INTEGER_OR_NULL));
Expect.equals(UNKNOWN, POTENTIAL_STRING.union(DOUBLE_OR_NULL));
Expect.equals(POTENTIAL_STRING, POTENTIAL_STRING.union(STRING_OR_NULL));
Expect.equals(POTENTIAL_STRING, POTENTIAL_STRING.union(NULL));
Expect.equals(UNKNOWN, POTENTIAL_STRING.union(FIXED_ARRAY));
Expect.equals(BOOLEAN_OR_NULL, BOOLEAN_OR_NULL.union(CONFLICTING));
Expect.equals(UNKNOWN, BOOLEAN_OR_NULL.union(UNKNOWN));
Expect.equals(BOOLEAN_OR_NULL, BOOLEAN_OR_NULL.union(BOOLEAN));
Expect.equals(UNKNOWN, BOOLEAN_OR_NULL.union(NUMBER));
Expect.equals(UNKNOWN, BOOLEAN_OR_NULL.union(INTEGER));
Expect.equals(UNKNOWN, BOOLEAN_OR_NULL.union(DOUBLE));
Expect.equals(UNKNOWN, BOOLEAN_OR_NULL.union(INDEXABLE_PRIMITIVE));
Expect.equals(UNKNOWN, BOOLEAN_OR_NULL.union(STRING));
Expect.equals(UNKNOWN, BOOLEAN_OR_NULL.union(READABLE_ARRAY));
Expect.equals(UNKNOWN, BOOLEAN_OR_NULL.union(MUTABLE_ARRAY));
Expect.equals(UNKNOWN, BOOLEAN_OR_NULL.union(EXTENDABLE_ARRAY));
Expect.equals(UNKNOWN, BOOLEAN_OR_NULL.union(NON_PRIMITIVE1));
Expect.equals(UNKNOWN, BOOLEAN_OR_NULL.union(NON_PRIMITIVE2));
Expect.equals(UNKNOWN, BOOLEAN_OR_NULL.union(POTENTIAL_ARRAY));
Expect.equals(UNKNOWN, BOOLEAN_OR_NULL.union(POTENTIAL_STRING));
Expect.equals(BOOLEAN_OR_NULL, BOOLEAN_OR_NULL.union(BOOLEAN_OR_NULL));
Expect.equals(UNKNOWN, BOOLEAN_OR_NULL.union(NUMBER_OR_NULL));
Expect.equals(UNKNOWN, BOOLEAN_OR_NULL.union(INTEGER_OR_NULL));
Expect.equals(UNKNOWN, BOOLEAN_OR_NULL.union(DOUBLE_OR_NULL));
Expect.equals(UNKNOWN, BOOLEAN_OR_NULL.union(STRING_OR_NULL));
Expect.equals(BOOLEAN_OR_NULL, BOOLEAN_OR_NULL.union(NULL));
Expect.equals(UNKNOWN, BOOLEAN_OR_NULL.union(FIXED_ARRAY));
Expect.equals(NUMBER_OR_NULL, NUMBER_OR_NULL.union(CONFLICTING));
Expect.equals(UNKNOWN, NUMBER_OR_NULL.union(UNKNOWN));
Expect.equals(UNKNOWN, NUMBER_OR_NULL.union(BOOLEAN));
Expect.equals(NUMBER_OR_NULL, NUMBER_OR_NULL.union(NUMBER));
Expect.equals(NUMBER_OR_NULL, NUMBER_OR_NULL.union(INTEGER));
Expect.equals(NUMBER_OR_NULL, NUMBER_OR_NULL.union(DOUBLE));
Expect.equals(UNKNOWN, NUMBER_OR_NULL.union(INDEXABLE_PRIMITIVE));
Expect.equals(UNKNOWN, NUMBER_OR_NULL.union(STRING));
Expect.equals(UNKNOWN, NUMBER_OR_NULL.union(READABLE_ARRAY));
Expect.equals(UNKNOWN, NUMBER_OR_NULL.union(MUTABLE_ARRAY));
Expect.equals(UNKNOWN, NUMBER_OR_NULL.union(EXTENDABLE_ARRAY));
Expect.equals(UNKNOWN, NUMBER_OR_NULL.union(NON_PRIMITIVE1));
Expect.equals(UNKNOWN, NUMBER_OR_NULL.union(NON_PRIMITIVE2));
Expect.equals(UNKNOWN, NUMBER_OR_NULL.union(POTENTIAL_ARRAY));
Expect.equals(UNKNOWN, NUMBER_OR_NULL.union(POTENTIAL_STRING));
Expect.equals(UNKNOWN, NUMBER_OR_NULL.union(BOOLEAN_OR_NULL));
Expect.equals(NUMBER_OR_NULL, NUMBER_OR_NULL.union(NUMBER_OR_NULL));
Expect.equals(NUMBER_OR_NULL, NUMBER_OR_NULL.union(INTEGER_OR_NULL));
Expect.equals(NUMBER_OR_NULL, NUMBER_OR_NULL.union(DOUBLE_OR_NULL));
Expect.equals(UNKNOWN, NUMBER_OR_NULL.union(STRING_OR_NULL));
Expect.equals(NUMBER_OR_NULL, NUMBER_OR_NULL.union(NULL));
Expect.equals(UNKNOWN, NUMBER_OR_NULL.union(FIXED_ARRAY));
Expect.equals(INTEGER_OR_NULL, INTEGER_OR_NULL.union(CONFLICTING));
Expect.equals(UNKNOWN, INTEGER_OR_NULL.union(UNKNOWN));
Expect.equals(UNKNOWN, INTEGER_OR_NULL.union(BOOLEAN));
Expect.equals(NUMBER_OR_NULL, INTEGER_OR_NULL.union(NUMBER));
Expect.equals(INTEGER_OR_NULL, INTEGER_OR_NULL.union(INTEGER));
Expect.equals(NUMBER_OR_NULL, INTEGER_OR_NULL.union(DOUBLE));
Expect.equals(UNKNOWN, INTEGER_OR_NULL.union(INDEXABLE_PRIMITIVE));
Expect.equals(UNKNOWN, INTEGER_OR_NULL.union(STRING));
Expect.equals(UNKNOWN, INTEGER_OR_NULL.union(READABLE_ARRAY));
Expect.equals(UNKNOWN, INTEGER_OR_NULL.union(MUTABLE_ARRAY));
Expect.equals(UNKNOWN, INTEGER_OR_NULL.union(EXTENDABLE_ARRAY));
Expect.equals(UNKNOWN, INTEGER_OR_NULL.union(NON_PRIMITIVE1));
Expect.equals(UNKNOWN, INTEGER_OR_NULL.union(NON_PRIMITIVE2));
Expect.equals(UNKNOWN, INTEGER_OR_NULL.union(POTENTIAL_ARRAY));
Expect.equals(UNKNOWN, INTEGER_OR_NULL.union(POTENTIAL_STRING));
Expect.equals(UNKNOWN, INTEGER_OR_NULL.union(BOOLEAN_OR_NULL));
Expect.equals(NUMBER_OR_NULL, INTEGER_OR_NULL.union(NUMBER_OR_NULL));
Expect.equals(INTEGER_OR_NULL, INTEGER_OR_NULL.union(INTEGER_OR_NULL));
Expect.equals(NUMBER_OR_NULL, INTEGER_OR_NULL.union(DOUBLE_OR_NULL));
Expect.equals(UNKNOWN, INTEGER_OR_NULL.union(STRING_OR_NULL));
Expect.equals(INTEGER_OR_NULL, INTEGER_OR_NULL.union(NULL));
Expect.equals(UNKNOWN, INTEGER_OR_NULL.union(FIXED_ARRAY));
Expect.equals(DOUBLE_OR_NULL, DOUBLE_OR_NULL.union(CONFLICTING));
Expect.equals(UNKNOWN, DOUBLE_OR_NULL.union(UNKNOWN));
Expect.equals(UNKNOWN, DOUBLE_OR_NULL.union(BOOLEAN));
Expect.equals(NUMBER_OR_NULL, DOUBLE_OR_NULL.union(NUMBER));
Expect.equals(NUMBER_OR_NULL, DOUBLE_OR_NULL.union(INTEGER));
Expect.equals(DOUBLE_OR_NULL, DOUBLE_OR_NULL.union(DOUBLE));
Expect.equals(UNKNOWN, DOUBLE_OR_NULL.union(INDEXABLE_PRIMITIVE));
Expect.equals(UNKNOWN, DOUBLE_OR_NULL.union(STRING));
Expect.equals(UNKNOWN, DOUBLE_OR_NULL.union(READABLE_ARRAY));
Expect.equals(UNKNOWN, DOUBLE_OR_NULL.union(MUTABLE_ARRAY));
Expect.equals(UNKNOWN, DOUBLE_OR_NULL.union(EXTENDABLE_ARRAY));
Expect.equals(UNKNOWN, DOUBLE_OR_NULL.union(NON_PRIMITIVE1));
Expect.equals(UNKNOWN, DOUBLE_OR_NULL.union(NON_PRIMITIVE2));
Expect.equals(UNKNOWN, DOUBLE_OR_NULL.union(POTENTIAL_ARRAY));
Expect.equals(UNKNOWN, DOUBLE_OR_NULL.union(POTENTIAL_STRING));
Expect.equals(UNKNOWN, DOUBLE_OR_NULL.union(BOOLEAN_OR_NULL));
Expect.equals(NUMBER_OR_NULL, DOUBLE_OR_NULL.union(NUMBER_OR_NULL));
Expect.equals(NUMBER_OR_NULL, DOUBLE_OR_NULL.union(INTEGER_OR_NULL));
Expect.equals(DOUBLE_OR_NULL, DOUBLE_OR_NULL.union(DOUBLE_OR_NULL));
Expect.equals(UNKNOWN, DOUBLE_OR_NULL.union(STRING_OR_NULL));
Expect.equals(DOUBLE_OR_NULL, DOUBLE_OR_NULL.union(NULL));
Expect.equals(UNKNOWN, DOUBLE_OR_NULL.union(FIXED_ARRAY));
Expect.equals(STRING_OR_NULL, STRING_OR_NULL.union(CONFLICTING));
Expect.equals(UNKNOWN, STRING_OR_NULL.union(UNKNOWN));
Expect.equals(UNKNOWN, STRING_OR_NULL.union(BOOLEAN));
Expect.equals(UNKNOWN, STRING_OR_NULL.union(NUMBER));
Expect.equals(UNKNOWN, STRING_OR_NULL.union(INTEGER));
Expect.equals(UNKNOWN, STRING_OR_NULL.union(DOUBLE));
Expect.equals(UNKNOWN, STRING_OR_NULL.union(INDEXABLE_PRIMITIVE));
Expect.equals(STRING_OR_NULL, STRING_OR_NULL.union(STRING));
Expect.equals(UNKNOWN, STRING_OR_NULL.union(READABLE_ARRAY));
Expect.equals(UNKNOWN, STRING_OR_NULL.union(MUTABLE_ARRAY));
Expect.equals(UNKNOWN, STRING_OR_NULL.union(EXTENDABLE_ARRAY));
Expect.equals(UNKNOWN, STRING_OR_NULL.union(NON_PRIMITIVE1));
Expect.equals(UNKNOWN, STRING_OR_NULL.union(NON_PRIMITIVE2));
Expect.equals(UNKNOWN, STRING_OR_NULL.union(POTENTIAL_ARRAY));
Expect.equals(POTENTIAL_STRING, STRING_OR_NULL.union(POTENTIAL_STRING));
Expect.equals(UNKNOWN, STRING_OR_NULL.union(BOOLEAN_OR_NULL));
Expect.equals(UNKNOWN, STRING_OR_NULL.union(NUMBER_OR_NULL));
Expect.equals(UNKNOWN, STRING_OR_NULL.union(INTEGER_OR_NULL));
Expect.equals(UNKNOWN, STRING_OR_NULL.union(DOUBLE_OR_NULL));
Expect.equals(STRING_OR_NULL, STRING_OR_NULL.union(STRING_OR_NULL));
Expect.equals(STRING_OR_NULL, STRING_OR_NULL.union(NULL));
Expect.equals(UNKNOWN, STRING_OR_NULL.union(FIXED_ARRAY));
Expect.equals(NULL, NULL.union(CONFLICTING));
Expect.equals(UNKNOWN, NULL.union(UNKNOWN));
Expect.equals(BOOLEAN_OR_NULL, NULL.union(BOOLEAN));
Expect.equals(NUMBER_OR_NULL, NULL.union(NUMBER));
Expect.equals(INTEGER_OR_NULL, NULL.union(INTEGER));
Expect.equals(DOUBLE_OR_NULL, NULL.union(DOUBLE));
Expect.equals(UNKNOWN, NULL.union(INDEXABLE_PRIMITIVE));
Expect.equals(STRING_OR_NULL, NULL.union(STRING));
Expect.equals(UNKNOWN, NULL.union(READABLE_ARRAY));
Expect.equals(UNKNOWN, NULL.union(MUTABLE_ARRAY));
Expect.equals(UNKNOWN, NULL.union(EXTENDABLE_ARRAY));
Expect.equals(UNKNOWN, NULL.union(NON_PRIMITIVE1));
Expect.equals(UNKNOWN, NULL.union(NON_PRIMITIVE2));
Expect.equals(POTENTIAL_ARRAY, NULL.union(POTENTIAL_ARRAY));
Expect.equals(POTENTIAL_STRING, NULL.union(POTENTIAL_STRING));
Expect.equals(BOOLEAN_OR_NULL, NULL.union(BOOLEAN_OR_NULL));
Expect.equals(NUMBER_OR_NULL, NULL.union(NUMBER_OR_NULL));
Expect.equals(INTEGER_OR_NULL, NULL.union(INTEGER_OR_NULL));
Expect.equals(DOUBLE_OR_NULL, NULL.union(DOUBLE_OR_NULL));
Expect.equals(STRING_OR_NULL, NULL.union(STRING_OR_NULL));
Expect.equals(NULL, NULL.union(NULL));
Expect.equals(UNKNOWN, NULL.union(FIXED_ARRAY));
Expect.equals(FIXED_ARRAY, FIXED_ARRAY.union(CONFLICTING));
Expect.equals(UNKNOWN, FIXED_ARRAY.union(UNKNOWN));
Expect.equals(UNKNOWN, FIXED_ARRAY.union(BOOLEAN));
Expect.equals(UNKNOWN, FIXED_ARRAY.union(NUMBER));
Expect.equals(UNKNOWN, FIXED_ARRAY.union(INTEGER));
Expect.equals(UNKNOWN, FIXED_ARRAY.union(DOUBLE));
Expect.equals(INDEXABLE_PRIMITIVE, FIXED_ARRAY.union(INDEXABLE_PRIMITIVE));
Expect.equals(INDEXABLE_PRIMITIVE, FIXED_ARRAY.union(STRING));
Expect.equals(READABLE_ARRAY, FIXED_ARRAY.union(READABLE_ARRAY));
Expect.equals(MUTABLE_ARRAY, FIXED_ARRAY.union(MUTABLE_ARRAY));
Expect.equals(MUTABLE_ARRAY, FIXED_ARRAY.union(EXTENDABLE_ARRAY));
Expect.equals(UNKNOWN, FIXED_ARRAY.union(NON_PRIMITIVE1));
Expect.equals(UNKNOWN, FIXED_ARRAY.union(NON_PRIMITIVE2));
Expect.equals(POTENTIAL_ARRAY, FIXED_ARRAY.union(POTENTIAL_ARRAY));
Expect.equals(UNKNOWN, FIXED_ARRAY.union(POTENTIAL_STRING));
Expect.equals(UNKNOWN, FIXED_ARRAY.union(BOOLEAN_OR_NULL));
Expect.equals(UNKNOWN, FIXED_ARRAY.union(NUMBER_OR_NULL));
Expect.equals(UNKNOWN, FIXED_ARRAY.union(INTEGER_OR_NULL));
Expect.equals(UNKNOWN, FIXED_ARRAY.union(DOUBLE_OR_NULL));
Expect.equals(UNKNOWN, FIXED_ARRAY.union(STRING_OR_NULL));
Expect.equals(UNKNOWN, FIXED_ARRAY.union(NULL));
Expect.equals(FIXED_ARRAY, FIXED_ARRAY.union(FIXED_ARRAY));
}
void testIntersection() {
Expect.equals(CONFLICTING, CONFLICTING.intersection(CONFLICTING));
Expect.equals(CONFLICTING, CONFLICTING.intersection(UNKNOWN));
Expect.equals(CONFLICTING, CONFLICTING.intersection(BOOLEAN));
Expect.equals(CONFLICTING, CONFLICTING.intersection(NUMBER));
Expect.equals(CONFLICTING, CONFLICTING.intersection(INTEGER));
Expect.equals(CONFLICTING, CONFLICTING.intersection(DOUBLE));
Expect.equals(CONFLICTING, CONFLICTING.intersection(INDEXABLE_PRIMITIVE));
Expect.equals(CONFLICTING, CONFLICTING.intersection(STRING));
Expect.equals(CONFLICTING, CONFLICTING.intersection(READABLE_ARRAY));
Expect.equals(CONFLICTING, CONFLICTING.intersection(MUTABLE_ARRAY));
Expect.equals(CONFLICTING, CONFLICTING.intersection(EXTENDABLE_ARRAY));
Expect.equals(CONFLICTING, CONFLICTING.intersection(NON_PRIMITIVE1));
Expect.equals(CONFLICTING, CONFLICTING.intersection(NON_PRIMITIVE2));
Expect.equals(CONFLICTING, CONFLICTING.intersection(POTENTIAL_ARRAY));
Expect.equals(CONFLICTING, CONFLICTING.intersection(POTENTIAL_STRING));
Expect.equals(CONFLICTING, CONFLICTING.intersection(BOOLEAN_OR_NULL));
Expect.equals(CONFLICTING, CONFLICTING.intersection(NUMBER_OR_NULL));
Expect.equals(CONFLICTING, CONFLICTING.intersection(INTEGER_OR_NULL));
Expect.equals(CONFLICTING, CONFLICTING.intersection(DOUBLE_OR_NULL));
Expect.equals(CONFLICTING, CONFLICTING.intersection(STRING_OR_NULL));
Expect.equals(CONFLICTING, CONFLICTING.intersection(NULL));
Expect.equals(CONFLICTING, CONFLICTING.intersection(FIXED_ARRAY));
Expect.equals(CONFLICTING, UNKNOWN.intersection(CONFLICTING));
Expect.equals(UNKNOWN, UNKNOWN.intersection(UNKNOWN));
Expect.equals(BOOLEAN, UNKNOWN.intersection(BOOLEAN));
Expect.equals(NUMBER, UNKNOWN.intersection(NUMBER));
Expect.equals(INTEGER, UNKNOWN.intersection(INTEGER));
Expect.equals(DOUBLE, UNKNOWN.intersection(DOUBLE));
Expect.equals(INDEXABLE_PRIMITIVE, UNKNOWN.intersection(INDEXABLE_PRIMITIVE));
Expect.equals(STRING, UNKNOWN.intersection(STRING));
Expect.equals(READABLE_ARRAY, UNKNOWN.intersection(READABLE_ARRAY));
Expect.equals(MUTABLE_ARRAY, UNKNOWN.intersection(MUTABLE_ARRAY));
Expect.equals(EXTENDABLE_ARRAY, UNKNOWN.intersection(EXTENDABLE_ARRAY));
Expect.equals(NON_PRIMITIVE1, UNKNOWN.intersection(NON_PRIMITIVE1));
Expect.equals(NON_PRIMITIVE2, UNKNOWN.intersection(NON_PRIMITIVE2));
Expect.equals(POTENTIAL_ARRAY, UNKNOWN.intersection(POTENTIAL_ARRAY));
Expect.equals(POTENTIAL_STRING, UNKNOWN.intersection(POTENTIAL_STRING));
Expect.equals(BOOLEAN_OR_NULL, UNKNOWN.intersection(BOOLEAN_OR_NULL));
Expect.equals(NUMBER_OR_NULL, UNKNOWN.intersection(NUMBER_OR_NULL));
Expect.equals(INTEGER_OR_NULL, UNKNOWN.intersection(INTEGER_OR_NULL));
Expect.equals(DOUBLE_OR_NULL, UNKNOWN.intersection(DOUBLE_OR_NULL));
Expect.equals(STRING_OR_NULL, UNKNOWN.intersection(STRING_OR_NULL));
Expect.equals(NULL, UNKNOWN.intersection(NULL));
Expect.equals(FIXED_ARRAY, UNKNOWN.intersection(FIXED_ARRAY));
Expect.equals(CONFLICTING, BOOLEAN.intersection(CONFLICTING));
Expect.equals(BOOLEAN, BOOLEAN.intersection(UNKNOWN));
Expect.equals(BOOLEAN, BOOLEAN.intersection(BOOLEAN));
Expect.equals(CONFLICTING, BOOLEAN.intersection(NUMBER));
Expect.equals(CONFLICTING, BOOLEAN.intersection(INTEGER));
Expect.equals(CONFLICTING, BOOLEAN.intersection(DOUBLE));
Expect.equals(CONFLICTING, BOOLEAN.intersection(INDEXABLE_PRIMITIVE));
Expect.equals(CONFLICTING, BOOLEAN.intersection(STRING));
Expect.equals(CONFLICTING, BOOLEAN.intersection(READABLE_ARRAY));
Expect.equals(CONFLICTING, BOOLEAN.intersection(MUTABLE_ARRAY));
Expect.equals(CONFLICTING, BOOLEAN.intersection(EXTENDABLE_ARRAY));
Expect.equals(CONFLICTING, BOOLEAN.intersection(NON_PRIMITIVE1));
Expect.equals(CONFLICTING, BOOLEAN.intersection(NON_PRIMITIVE2));
Expect.equals(CONFLICTING, BOOLEAN.intersection(POTENTIAL_ARRAY));
Expect.equals(CONFLICTING, BOOLEAN.intersection(POTENTIAL_STRING));
Expect.equals(BOOLEAN, BOOLEAN.intersection(BOOLEAN_OR_NULL));
Expect.equals(CONFLICTING, BOOLEAN.intersection(NUMBER_OR_NULL));
Expect.equals(CONFLICTING, BOOLEAN.intersection(INTEGER_OR_NULL));
Expect.equals(CONFLICTING, BOOLEAN.intersection(DOUBLE_OR_NULL));
Expect.equals(CONFLICTING, BOOLEAN.intersection(STRING_OR_NULL));
Expect.equals(CONFLICTING, BOOLEAN.intersection(NULL));
Expect.equals(CONFLICTING, BOOLEAN.intersection(FIXED_ARRAY));
Expect.equals(CONFLICTING, NUMBER.intersection(CONFLICTING));
Expect.equals(NUMBER, NUMBER.intersection(UNKNOWN));
Expect.equals(CONFLICTING, NUMBER.intersection(BOOLEAN));
Expect.equals(NUMBER, NUMBER.intersection(NUMBER));
Expect.equals(INTEGER, NUMBER.intersection(INTEGER));
Expect.equals(DOUBLE, NUMBER.intersection(DOUBLE));
Expect.equals(CONFLICTING, NUMBER.intersection(INDEXABLE_PRIMITIVE));
Expect.equals(CONFLICTING, NUMBER.intersection(STRING));
Expect.equals(CONFLICTING, NUMBER.intersection(READABLE_ARRAY));
Expect.equals(CONFLICTING, NUMBER.intersection(MUTABLE_ARRAY));
Expect.equals(CONFLICTING, NUMBER.intersection(EXTENDABLE_ARRAY));
Expect.equals(CONFLICTING, NUMBER.intersection(NON_PRIMITIVE1));
Expect.equals(CONFLICTING, NUMBER.intersection(NON_PRIMITIVE2));
Expect.equals(CONFLICTING, NUMBER.intersection(POTENTIAL_ARRAY));
Expect.equals(CONFLICTING, NUMBER.intersection(POTENTIAL_STRING));
Expect.equals(CONFLICTING, NUMBER.intersection(BOOLEAN_OR_NULL));
Expect.equals(NUMBER, NUMBER.intersection(NUMBER_OR_NULL));
Expect.equals(INTEGER, NUMBER.intersection(INTEGER_OR_NULL));
Expect.equals(DOUBLE, NUMBER.intersection(DOUBLE_OR_NULL));
Expect.equals(CONFLICTING, NUMBER.intersection(STRING_OR_NULL));
Expect.equals(CONFLICTING, NUMBER.intersection(NULL));
Expect.equals(CONFLICTING, NUMBER.intersection(FIXED_ARRAY));
Expect.equals(CONFLICTING, INTEGER.intersection(CONFLICTING));
Expect.equals(INTEGER, INTEGER.intersection(UNKNOWN));
Expect.equals(CONFLICTING, INTEGER.intersection(BOOLEAN));
Expect.equals(INTEGER, INTEGER.intersection(NUMBER));
Expect.equals(INTEGER, INTEGER.intersection(INTEGER));
Expect.equals(CONFLICTING, INTEGER.intersection(DOUBLE));
Expect.equals(CONFLICTING, INTEGER.intersection(INDEXABLE_PRIMITIVE));
Expect.equals(CONFLICTING, INTEGER.intersection(STRING));
Expect.equals(CONFLICTING, INTEGER.intersection(READABLE_ARRAY));
Expect.equals(CONFLICTING, INTEGER.intersection(MUTABLE_ARRAY));
Expect.equals(CONFLICTING, INTEGER.intersection(EXTENDABLE_ARRAY));
Expect.equals(CONFLICTING, INTEGER.intersection(NON_PRIMITIVE1));
Expect.equals(CONFLICTING, INTEGER.intersection(NON_PRIMITIVE2));
Expect.equals(CONFLICTING, INTEGER.intersection(POTENTIAL_ARRAY));
Expect.equals(CONFLICTING, INTEGER.intersection(POTENTIAL_STRING));
Expect.equals(CONFLICTING, INTEGER.intersection(BOOLEAN_OR_NULL));
Expect.equals(INTEGER, INTEGER.intersection(NUMBER_OR_NULL));
Expect.equals(INTEGER, INTEGER.intersection(INTEGER_OR_NULL));
Expect.equals(CONFLICTING, INTEGER.intersection(DOUBLE_OR_NULL));
Expect.equals(CONFLICTING, INTEGER.intersection(STRING_OR_NULL));
Expect.equals(CONFLICTING, INTEGER.intersection(NULL));
Expect.equals(CONFLICTING, INTEGER.intersection(FIXED_ARRAY));
Expect.equals(CONFLICTING, DOUBLE.intersection(CONFLICTING));
Expect.equals(DOUBLE, DOUBLE.intersection(UNKNOWN));
Expect.equals(CONFLICTING, DOUBLE.intersection(BOOLEAN));
Expect.equals(DOUBLE, DOUBLE.intersection(NUMBER));
Expect.equals(CONFLICTING, DOUBLE.intersection(INTEGER));
Expect.equals(DOUBLE, DOUBLE.intersection(DOUBLE));
Expect.equals(CONFLICTING, DOUBLE.intersection(INDEXABLE_PRIMITIVE));
Expect.equals(CONFLICTING, DOUBLE.intersection(STRING));
Expect.equals(CONFLICTING, DOUBLE.intersection(READABLE_ARRAY));
Expect.equals(CONFLICTING, DOUBLE.intersection(MUTABLE_ARRAY));
Expect.equals(CONFLICTING, DOUBLE.intersection(EXTENDABLE_ARRAY));
Expect.equals(CONFLICTING, DOUBLE.intersection(NON_PRIMITIVE1));
Expect.equals(CONFLICTING, DOUBLE.intersection(NON_PRIMITIVE2));
Expect.equals(CONFLICTING, DOUBLE.intersection(POTENTIAL_ARRAY));
Expect.equals(CONFLICTING, DOUBLE.intersection(POTENTIAL_STRING));
Expect.equals(CONFLICTING, DOUBLE.intersection(BOOLEAN_OR_NULL));
Expect.equals(DOUBLE, DOUBLE.intersection(NUMBER_OR_NULL));
Expect.equals(CONFLICTING, DOUBLE.intersection(INTEGER_OR_NULL));
Expect.equals(DOUBLE, DOUBLE.intersection(DOUBLE_OR_NULL));
Expect.equals(CONFLICTING, DOUBLE.intersection(STRING_OR_NULL));
Expect.equals(CONFLICTING, DOUBLE.intersection(NULL));
Expect.equals(CONFLICTING, DOUBLE.intersection(FIXED_ARRAY));
Expect.equals(CONFLICTING, INDEXABLE_PRIMITIVE.intersection(CONFLICTING));
Expect.equals(INDEXABLE_PRIMITIVE, INDEXABLE_PRIMITIVE.intersection(UNKNOWN));
Expect.equals(CONFLICTING, INDEXABLE_PRIMITIVE.intersection(BOOLEAN));
Expect.equals(CONFLICTING, INDEXABLE_PRIMITIVE.intersection(NUMBER));
Expect.equals(CONFLICTING, INDEXABLE_PRIMITIVE.intersection(INTEGER));
Expect.equals(CONFLICTING, INDEXABLE_PRIMITIVE.intersection(DOUBLE));
Expect.equals(INDEXABLE_PRIMITIVE,
INDEXABLE_PRIMITIVE.intersection(INDEXABLE_PRIMITIVE));
Expect.equals(STRING, INDEXABLE_PRIMITIVE.intersection(STRING));
Expect.equals(READABLE_ARRAY,
INDEXABLE_PRIMITIVE.intersection(READABLE_ARRAY));
Expect.equals(MUTABLE_ARRAY,
INDEXABLE_PRIMITIVE.intersection(MUTABLE_ARRAY));
Expect.equals(EXTENDABLE_ARRAY,
INDEXABLE_PRIMITIVE.intersection(EXTENDABLE_ARRAY));
Expect.equals(CONFLICTING, INDEXABLE_PRIMITIVE.intersection(NON_PRIMITIVE1));
Expect.equals(CONFLICTING, INDEXABLE_PRIMITIVE.intersection(NON_PRIMITIVE2));
Expect.equals(READABLE_ARRAY,
INDEXABLE_PRIMITIVE.intersection(POTENTIAL_ARRAY));
Expect.equals(STRING,
INDEXABLE_PRIMITIVE.intersection(POTENTIAL_STRING));
Expect.equals(CONFLICTING, INDEXABLE_PRIMITIVE.intersection(BOOLEAN_OR_NULL));
Expect.equals(CONFLICTING, INDEXABLE_PRIMITIVE.intersection(NUMBER_OR_NULL));
Expect.equals(CONFLICTING, INDEXABLE_PRIMITIVE.intersection(INTEGER_OR_NULL));
Expect.equals(CONFLICTING, INDEXABLE_PRIMITIVE.intersection(DOUBLE_OR_NULL));
Expect.equals(CONFLICTING, INDEXABLE_PRIMITIVE.intersection(STRING_OR_NULL));
Expect.equals(CONFLICTING, INDEXABLE_PRIMITIVE.intersection(NULL));
Expect.equals(FIXED_ARRAY, INDEXABLE_PRIMITIVE.intersection(FIXED_ARRAY));
Expect.equals(CONFLICTING, STRING.intersection(CONFLICTING));
Expect.equals(STRING, STRING.intersection(UNKNOWN));
Expect.equals(CONFLICTING, STRING.intersection(BOOLEAN));
Expect.equals(CONFLICTING, STRING.intersection(NUMBER));
Expect.equals(CONFLICTING, STRING.intersection(INTEGER));
Expect.equals(CONFLICTING, STRING.intersection(DOUBLE));
Expect.equals(STRING, STRING.intersection(INDEXABLE_PRIMITIVE));
Expect.equals(STRING, STRING.intersection(STRING));
Expect.equals(CONFLICTING, STRING.intersection(READABLE_ARRAY));
Expect.equals(CONFLICTING, STRING.intersection(MUTABLE_ARRAY));
Expect.equals(CONFLICTING, STRING.intersection(EXTENDABLE_ARRAY));
Expect.equals(CONFLICTING, STRING.intersection(NON_PRIMITIVE1));
Expect.equals(CONFLICTING, STRING.intersection(NON_PRIMITIVE2));
Expect.equals(CONFLICTING, STRING.intersection(POTENTIAL_ARRAY));
Expect.equals(STRING, STRING.intersection(POTENTIAL_STRING));
Expect.equals(CONFLICTING, STRING.intersection(BOOLEAN_OR_NULL));
Expect.equals(CONFLICTING, STRING.intersection(NUMBER_OR_NULL));
Expect.equals(CONFLICTING, STRING.intersection(INTEGER_OR_NULL));
Expect.equals(CONFLICTING, STRING.intersection(DOUBLE_OR_NULL));
Expect.equals(STRING, STRING.intersection(STRING_OR_NULL));
Expect.equals(CONFLICTING, STRING.intersection(NULL));
Expect.equals(CONFLICTING, STRING.intersection(FIXED_ARRAY));
Expect.equals(CONFLICTING, READABLE_ARRAY.intersection(CONFLICTING));
Expect.equals(READABLE_ARRAY, READABLE_ARRAY.intersection(UNKNOWN));
Expect.equals(CONFLICTING, READABLE_ARRAY.intersection(BOOLEAN));
Expect.equals(CONFLICTING, READABLE_ARRAY.intersection(NUMBER));
Expect.equals(CONFLICTING, READABLE_ARRAY.intersection(INTEGER));
Expect.equals(CONFLICTING, READABLE_ARRAY.intersection(DOUBLE));
Expect.equals(READABLE_ARRAY, READABLE_ARRAY.intersection(INDEXABLE_PRIMITIVE));
Expect.equals(CONFLICTING, READABLE_ARRAY.intersection(STRING));
Expect.equals(READABLE_ARRAY, READABLE_ARRAY.intersection(READABLE_ARRAY));
Expect.equals(MUTABLE_ARRAY, READABLE_ARRAY.intersection(MUTABLE_ARRAY));
Expect.equals(EXTENDABLE_ARRAY, READABLE_ARRAY.intersection(EXTENDABLE_ARRAY));
Expect.equals(CONFLICTING, READABLE_ARRAY.intersection(NON_PRIMITIVE1));
Expect.equals(CONFLICTING, READABLE_ARRAY.intersection(NON_PRIMITIVE2));
Expect.equals(READABLE_ARRAY, READABLE_ARRAY.intersection(POTENTIAL_ARRAY));
Expect.equals(CONFLICTING, READABLE_ARRAY.intersection(POTENTIAL_STRING));
Expect.equals(CONFLICTING, READABLE_ARRAY.intersection(BOOLEAN_OR_NULL));
Expect.equals(CONFLICTING, READABLE_ARRAY.intersection(NUMBER_OR_NULL));
Expect.equals(CONFLICTING, READABLE_ARRAY.intersection(INTEGER_OR_NULL));
Expect.equals(CONFLICTING, READABLE_ARRAY.intersection(DOUBLE_OR_NULL));
Expect.equals(CONFLICTING, READABLE_ARRAY.intersection(STRING_OR_NULL));
Expect.equals(CONFLICTING, READABLE_ARRAY.intersection(NULL));
Expect.equals(FIXED_ARRAY, READABLE_ARRAY.intersection(FIXED_ARRAY));
Expect.equals(CONFLICTING, MUTABLE_ARRAY.intersection(CONFLICTING));
Expect.equals(MUTABLE_ARRAY, MUTABLE_ARRAY.intersection(UNKNOWN));
Expect.equals(CONFLICTING, MUTABLE_ARRAY.intersection(BOOLEAN));
Expect.equals(CONFLICTING, MUTABLE_ARRAY.intersection(NUMBER));
Expect.equals(CONFLICTING, MUTABLE_ARRAY.intersection(INTEGER));
Expect.equals(CONFLICTING, MUTABLE_ARRAY.intersection(DOUBLE));
Expect.equals(MUTABLE_ARRAY, MUTABLE_ARRAY.intersection(INDEXABLE_PRIMITIVE));
Expect.equals(CONFLICTING, MUTABLE_ARRAY.intersection(STRING));
Expect.equals(MUTABLE_ARRAY, MUTABLE_ARRAY.intersection(READABLE_ARRAY));
Expect.equals(MUTABLE_ARRAY, MUTABLE_ARRAY.intersection(MUTABLE_ARRAY));
Expect.equals(EXTENDABLE_ARRAY, MUTABLE_ARRAY.intersection(EXTENDABLE_ARRAY));
Expect.equals(CONFLICTING, MUTABLE_ARRAY.intersection(NON_PRIMITIVE1));
Expect.equals(CONFLICTING, MUTABLE_ARRAY.intersection(NON_PRIMITIVE2));
Expect.equals(MUTABLE_ARRAY, MUTABLE_ARRAY.intersection(POTENTIAL_ARRAY));
Expect.equals(CONFLICTING, MUTABLE_ARRAY.intersection(POTENTIAL_STRING));
Expect.equals(CONFLICTING, MUTABLE_ARRAY.intersection(BOOLEAN_OR_NULL));
Expect.equals(CONFLICTING, MUTABLE_ARRAY.intersection(NUMBER_OR_NULL));
Expect.equals(CONFLICTING, MUTABLE_ARRAY.intersection(INTEGER_OR_NULL));
Expect.equals(CONFLICTING, MUTABLE_ARRAY.intersection(DOUBLE_OR_NULL));
Expect.equals(CONFLICTING, MUTABLE_ARRAY.intersection(STRING_OR_NULL));
Expect.equals(CONFLICTING, MUTABLE_ARRAY.intersection(NULL));
Expect.equals(FIXED_ARRAY, MUTABLE_ARRAY.intersection(FIXED_ARRAY));
Expect.equals(CONFLICTING, EXTENDABLE_ARRAY.intersection(CONFLICTING));
Expect.equals(EXTENDABLE_ARRAY, EXTENDABLE_ARRAY.intersection(UNKNOWN));
Expect.equals(CONFLICTING, EXTENDABLE_ARRAY.intersection(BOOLEAN));
Expect.equals(CONFLICTING, EXTENDABLE_ARRAY.intersection(NUMBER));
Expect.equals(CONFLICTING, EXTENDABLE_ARRAY.intersection(INTEGER));
Expect.equals(CONFLICTING, EXTENDABLE_ARRAY.intersection(DOUBLE));
Expect.equals(EXTENDABLE_ARRAY,
EXTENDABLE_ARRAY.intersection(INDEXABLE_PRIMITIVE));
Expect.equals(CONFLICTING, EXTENDABLE_ARRAY.intersection(STRING));
Expect.equals(EXTENDABLE_ARRAY,
EXTENDABLE_ARRAY.intersection(READABLE_ARRAY));
Expect.equals(EXTENDABLE_ARRAY, EXTENDABLE_ARRAY.intersection(MUTABLE_ARRAY));
Expect.equals(EXTENDABLE_ARRAY,
EXTENDABLE_ARRAY.intersection(EXTENDABLE_ARRAY));
Expect.equals(CONFLICTING, EXTENDABLE_ARRAY.intersection(NON_PRIMITIVE1));
Expect.equals(CONFLICTING, EXTENDABLE_ARRAY.intersection(NON_PRIMITIVE2));
Expect.equals(EXTENDABLE_ARRAY,
EXTENDABLE_ARRAY.intersection(POTENTIAL_ARRAY));
Expect.equals(CONFLICTING, EXTENDABLE_ARRAY.intersection(POTENTIAL_STRING));
Expect.equals(CONFLICTING, EXTENDABLE_ARRAY.intersection(BOOLEAN_OR_NULL));
Expect.equals(CONFLICTING, EXTENDABLE_ARRAY.intersection(NUMBER_OR_NULL));
Expect.equals(CONFLICTING, EXTENDABLE_ARRAY.intersection(INTEGER_OR_NULL));
Expect.equals(CONFLICTING, EXTENDABLE_ARRAY.intersection(DOUBLE_OR_NULL));
Expect.equals(CONFLICTING, EXTENDABLE_ARRAY.intersection(STRING_OR_NULL));
Expect.equals(CONFLICTING, EXTENDABLE_ARRAY.intersection(NULL));
Expect.equals(CONFLICTING, EXTENDABLE_ARRAY.intersection(FIXED_ARRAY));
Expect.equals(CONFLICTING, NON_PRIMITIVE1.intersection(CONFLICTING));
Expect.equals(NON_PRIMITIVE1, NON_PRIMITIVE1.intersection(UNKNOWN));
Expect.equals(CONFLICTING, NON_PRIMITIVE1.intersection(BOOLEAN));
Expect.equals(CONFLICTING, NON_PRIMITIVE1.intersection(NUMBER));
Expect.equals(CONFLICTING, NON_PRIMITIVE1.intersection(INTEGER));
Expect.equals(CONFLICTING, NON_PRIMITIVE1.intersection(DOUBLE));
Expect.equals(CONFLICTING, NON_PRIMITIVE1.intersection(INDEXABLE_PRIMITIVE));
Expect.equals(CONFLICTING, NON_PRIMITIVE1.intersection(STRING));
Expect.equals(CONFLICTING, NON_PRIMITIVE1.intersection(READABLE_ARRAY));
Expect.equals(CONFLICTING, NON_PRIMITIVE1.intersection(MUTABLE_ARRAY));
Expect.equals(CONFLICTING, NON_PRIMITIVE1.intersection(EXTENDABLE_ARRAY));
Expect.equals(NON_PRIMITIVE1, NON_PRIMITIVE1.intersection(NON_PRIMITIVE1));
Expect.equals(CONFLICTING, NON_PRIMITIVE1.intersection(NON_PRIMITIVE2));
Expect.equals(CONFLICTING, NON_PRIMITIVE1.intersection(POTENTIAL_ARRAY));
Expect.equals(CONFLICTING, NON_PRIMITIVE1.intersection(POTENTIAL_STRING));
Expect.equals(CONFLICTING, NON_PRIMITIVE1.intersection(BOOLEAN_OR_NULL));
Expect.equals(CONFLICTING, NON_PRIMITIVE1.intersection(NUMBER_OR_NULL));
Expect.equals(CONFLICTING, NON_PRIMITIVE1.intersection(INTEGER_OR_NULL));
Expect.equals(CONFLICTING, NON_PRIMITIVE1.intersection(DOUBLE_OR_NULL));
Expect.equals(CONFLICTING, NON_PRIMITIVE1.intersection(STRING_OR_NULL));
Expect.equals(CONFLICTING, NON_PRIMITIVE1.intersection(NULL));
Expect.equals(CONFLICTING, NON_PRIMITIVE1.intersection(FIXED_ARRAY));
Expect.equals(CONFLICTING, NON_PRIMITIVE2.intersection(CONFLICTING));
Expect.equals(NON_PRIMITIVE2, NON_PRIMITIVE2.intersection(UNKNOWN));
Expect.equals(CONFLICTING, NON_PRIMITIVE2.intersection(BOOLEAN));
Expect.equals(CONFLICTING, NON_PRIMITIVE2.intersection(NUMBER));
Expect.equals(CONFLICTING, NON_PRIMITIVE2.intersection(INTEGER));
Expect.equals(CONFLICTING, NON_PRIMITIVE2.intersection(DOUBLE));
Expect.equals(CONFLICTING, NON_PRIMITIVE2.intersection(INDEXABLE_PRIMITIVE));
Expect.equals(CONFLICTING, NON_PRIMITIVE2.intersection(STRING));
Expect.equals(CONFLICTING, NON_PRIMITIVE2.intersection(READABLE_ARRAY));
Expect.equals(CONFLICTING, NON_PRIMITIVE2.intersection(MUTABLE_ARRAY));
Expect.equals(CONFLICTING, NON_PRIMITIVE2.intersection(EXTENDABLE_ARRAY));
Expect.equals(CONFLICTING, NON_PRIMITIVE2.intersection(NON_PRIMITIVE1));
Expect.equals(NON_PRIMITIVE2, NON_PRIMITIVE2.intersection(NON_PRIMITIVE2));
Expect.equals(CONFLICTING, NON_PRIMITIVE2.intersection(POTENTIAL_ARRAY));
Expect.equals(CONFLICTING, NON_PRIMITIVE2.intersection(POTENTIAL_STRING));
Expect.equals(CONFLICTING, NON_PRIMITIVE2.intersection(BOOLEAN_OR_NULL));
Expect.equals(CONFLICTING, NON_PRIMITIVE2.intersection(NUMBER_OR_NULL));
Expect.equals(CONFLICTING, NON_PRIMITIVE2.intersection(INTEGER_OR_NULL));
Expect.equals(CONFLICTING, NON_PRIMITIVE2.intersection(DOUBLE_OR_NULL));
Expect.equals(CONFLICTING, NON_PRIMITIVE2.intersection(STRING_OR_NULL));
Expect.equals(CONFLICTING, NON_PRIMITIVE2.intersection(NULL));
Expect.equals(CONFLICTING, NON_PRIMITIVE2.intersection(FIXED_ARRAY));
Expect.equals(CONFLICTING, POTENTIAL_ARRAY.intersection(CONFLICTING));
Expect.equals(POTENTIAL_ARRAY, POTENTIAL_ARRAY.intersection(UNKNOWN));
Expect.equals(CONFLICTING, POTENTIAL_ARRAY.intersection(BOOLEAN));
Expect.equals(CONFLICTING, POTENTIAL_ARRAY.intersection(NUMBER));
Expect.equals(CONFLICTING, POTENTIAL_ARRAY.intersection(INTEGER));
Expect.equals(CONFLICTING, POTENTIAL_ARRAY.intersection(DOUBLE));
Expect.equals(READABLE_ARRAY, POTENTIAL_ARRAY.intersection(INDEXABLE_PRIMITIVE));
Expect.equals(CONFLICTING, POTENTIAL_ARRAY.intersection(STRING));
Expect.equals(READABLE_ARRAY, POTENTIAL_ARRAY.intersection(READABLE_ARRAY));
Expect.equals(MUTABLE_ARRAY, POTENTIAL_ARRAY.intersection(MUTABLE_ARRAY));
Expect.equals(EXTENDABLE_ARRAY, POTENTIAL_ARRAY.intersection(EXTENDABLE_ARRAY));
Expect.equals(CONFLICTING, POTENTIAL_ARRAY.intersection(NON_PRIMITIVE1));
Expect.equals(CONFLICTING, POTENTIAL_ARRAY.intersection(NON_PRIMITIVE2));
Expect.equals(POTENTIAL_ARRAY, POTENTIAL_ARRAY.intersection(POTENTIAL_ARRAY));
Expect.equals(NULL, POTENTIAL_ARRAY.intersection(POTENTIAL_STRING));
Expect.equals(NULL, POTENTIAL_ARRAY.intersection(BOOLEAN_OR_NULL));
Expect.equals(NULL, POTENTIAL_ARRAY.intersection(NUMBER_OR_NULL));
Expect.equals(NULL, POTENTIAL_ARRAY.intersection(INTEGER_OR_NULL));
Expect.equals(NULL, POTENTIAL_ARRAY.intersection(DOUBLE_OR_NULL));
Expect.equals(NULL, POTENTIAL_ARRAY.intersection(STRING_OR_NULL));
Expect.equals(NULL, POTENTIAL_ARRAY.intersection(NULL));
Expect.equals(FIXED_ARRAY, POTENTIAL_ARRAY.intersection(FIXED_ARRAY));
Expect.equals(CONFLICTING, POTENTIAL_STRING.intersection(CONFLICTING));
Expect.equals(POTENTIAL_STRING, POTENTIAL_STRING.intersection(UNKNOWN));
Expect.equals(CONFLICTING, POTENTIAL_STRING.intersection(BOOLEAN));
Expect.equals(CONFLICTING, POTENTIAL_STRING.intersection(NUMBER));
Expect.equals(CONFLICTING, POTENTIAL_STRING.intersection(INTEGER));
Expect.equals(CONFLICTING, POTENTIAL_STRING.intersection(DOUBLE));
Expect.equals(STRING, POTENTIAL_STRING.intersection(INDEXABLE_PRIMITIVE));
Expect.equals(STRING, POTENTIAL_STRING.intersection(STRING));
Expect.equals(CONFLICTING, POTENTIAL_STRING.intersection(READABLE_ARRAY));
Expect.equals(CONFLICTING, POTENTIAL_STRING.intersection(MUTABLE_ARRAY));
Expect.equals(CONFLICTING, POTENTIAL_STRING.intersection(EXTENDABLE_ARRAY));
Expect.equals(CONFLICTING, POTENTIAL_STRING.intersection(NON_PRIMITIVE1));
Expect.equals(CONFLICTING, POTENTIAL_STRING.intersection(NON_PRIMITIVE2));
Expect.equals(NULL, POTENTIAL_STRING.intersection(POTENTIAL_ARRAY));
Expect.equals(POTENTIAL_STRING, POTENTIAL_STRING.intersection(POTENTIAL_STRING));
Expect.equals(NULL, POTENTIAL_STRING.intersection(BOOLEAN_OR_NULL));
Expect.equals(NULL, POTENTIAL_STRING.intersection(NUMBER_OR_NULL));
Expect.equals(NULL, POTENTIAL_STRING.intersection(INTEGER_OR_NULL));
Expect.equals(NULL, POTENTIAL_STRING.intersection(DOUBLE_OR_NULL));
Expect.equals(STRING_OR_NULL, POTENTIAL_STRING.intersection(STRING_OR_NULL));
Expect.equals(NULL, POTENTIAL_STRING.intersection(NULL));
Expect.equals(CONFLICTING, POTENTIAL_STRING.intersection(FIXED_ARRAY));
Expect.equals(CONFLICTING, BOOLEAN_OR_NULL.intersection(CONFLICTING));
Expect.equals(BOOLEAN_OR_NULL, BOOLEAN_OR_NULL.intersection(UNKNOWN));
Expect.equals(BOOLEAN, BOOLEAN_OR_NULL.intersection(BOOLEAN));
Expect.equals(CONFLICTING, BOOLEAN_OR_NULL.intersection(NUMBER));
Expect.equals(CONFLICTING, BOOLEAN_OR_NULL.intersection(INTEGER));
Expect.equals(CONFLICTING, BOOLEAN_OR_NULL.intersection(DOUBLE));
Expect.equals(CONFLICTING, BOOLEAN_OR_NULL.intersection(INDEXABLE_PRIMITIVE));
Expect.equals(CONFLICTING, BOOLEAN_OR_NULL.intersection(STRING));
Expect.equals(CONFLICTING, BOOLEAN_OR_NULL.intersection(READABLE_ARRAY));
Expect.equals(CONFLICTING, BOOLEAN_OR_NULL.intersection(MUTABLE_ARRAY));
Expect.equals(CONFLICTING, BOOLEAN_OR_NULL.intersection(EXTENDABLE_ARRAY));
Expect.equals(CONFLICTING, BOOLEAN_OR_NULL.intersection(NON_PRIMITIVE1));
Expect.equals(CONFLICTING, BOOLEAN_OR_NULL.intersection(NON_PRIMITIVE2));
Expect.equals(NULL, BOOLEAN_OR_NULL.intersection(POTENTIAL_ARRAY));
Expect.equals(NULL, BOOLEAN_OR_NULL.intersection(POTENTIAL_STRING));
Expect.equals(BOOLEAN_OR_NULL, BOOLEAN_OR_NULL.intersection(BOOLEAN_OR_NULL));
Expect.equals(NULL, BOOLEAN_OR_NULL.intersection(NUMBER_OR_NULL));
Expect.equals(NULL, BOOLEAN_OR_NULL.intersection(INTEGER_OR_NULL));
Expect.equals(NULL, BOOLEAN_OR_NULL.intersection(DOUBLE_OR_NULL));
Expect.equals(NULL, BOOLEAN_OR_NULL.intersection(STRING_OR_NULL));
Expect.equals(NULL, BOOLEAN_OR_NULL.intersection(NULL));
Expect.equals(CONFLICTING, BOOLEAN_OR_NULL.intersection(FIXED_ARRAY));
Expect.equals(CONFLICTING, NUMBER_OR_NULL.intersection(CONFLICTING));
Expect.equals(NUMBER_OR_NULL, NUMBER_OR_NULL.intersection(UNKNOWN));
Expect.equals(CONFLICTING, NUMBER_OR_NULL.intersection(BOOLEAN));
Expect.equals(NUMBER, NUMBER_OR_NULL.intersection(NUMBER));
Expect.equals(INTEGER, NUMBER_OR_NULL.intersection(INTEGER));
Expect.equals(DOUBLE, NUMBER_OR_NULL.intersection(DOUBLE));
Expect.equals(CONFLICTING, NUMBER_OR_NULL.intersection(INDEXABLE_PRIMITIVE));
Expect.equals(CONFLICTING, NUMBER_OR_NULL.intersection(STRING));
Expect.equals(CONFLICTING, NUMBER_OR_NULL.intersection(READABLE_ARRAY));
Expect.equals(CONFLICTING, NUMBER_OR_NULL.intersection(MUTABLE_ARRAY));
Expect.equals(CONFLICTING, NUMBER_OR_NULL.intersection(EXTENDABLE_ARRAY));
Expect.equals(CONFLICTING, NUMBER_OR_NULL.intersection(NON_PRIMITIVE1));
Expect.equals(CONFLICTING, NUMBER_OR_NULL.intersection(NON_PRIMITIVE2));
Expect.equals(NULL, NUMBER_OR_NULL.intersection(POTENTIAL_ARRAY));
Expect.equals(NULL, NUMBER_OR_NULL.intersection(POTENTIAL_STRING));
Expect.equals(NULL, NUMBER_OR_NULL.intersection(BOOLEAN_OR_NULL));
Expect.equals(NUMBER_OR_NULL, NUMBER_OR_NULL.intersection(NUMBER_OR_NULL));
Expect.equals(INTEGER_OR_NULL, NUMBER_OR_NULL.intersection(INTEGER_OR_NULL));
Expect.equals(DOUBLE_OR_NULL, NUMBER_OR_NULL.intersection(DOUBLE_OR_NULL));
Expect.equals(NULL, NUMBER_OR_NULL.intersection(STRING_OR_NULL));
Expect.equals(NULL, NUMBER_OR_NULL.intersection(NULL));
Expect.equals(CONFLICTING, NUMBER_OR_NULL.intersection(FIXED_ARRAY));
Expect.equals(CONFLICTING, INTEGER_OR_NULL.intersection(CONFLICTING));
Expect.equals(INTEGER_OR_NULL, INTEGER_OR_NULL.intersection(UNKNOWN));
Expect.equals(CONFLICTING, INTEGER_OR_NULL.intersection(BOOLEAN));
Expect.equals(INTEGER, INTEGER_OR_NULL.intersection(NUMBER));
Expect.equals(INTEGER, INTEGER_OR_NULL.intersection(INTEGER));
Expect.equals(CONFLICTING, INTEGER_OR_NULL.intersection(DOUBLE));
Expect.equals(CONFLICTING, INTEGER_OR_NULL.intersection(INDEXABLE_PRIMITIVE));
Expect.equals(CONFLICTING, INTEGER_OR_NULL.intersection(STRING));
Expect.equals(CONFLICTING, INTEGER_OR_NULL.intersection(READABLE_ARRAY));
Expect.equals(CONFLICTING, INTEGER_OR_NULL.intersection(MUTABLE_ARRAY));
Expect.equals(CONFLICTING, INTEGER_OR_NULL.intersection(EXTENDABLE_ARRAY));
Expect.equals(CONFLICTING, INTEGER_OR_NULL.intersection(NON_PRIMITIVE1));
Expect.equals(CONFLICTING, INTEGER_OR_NULL.intersection(NON_PRIMITIVE2));
Expect.equals(NULL, INTEGER_OR_NULL.intersection(POTENTIAL_ARRAY));
Expect.equals(NULL, INTEGER_OR_NULL.intersection(POTENTIAL_STRING));
Expect.equals(NULL, INTEGER_OR_NULL.intersection(BOOLEAN_OR_NULL));
Expect.equals(INTEGER_OR_NULL, INTEGER_OR_NULL.intersection(NUMBER_OR_NULL));
Expect.equals(INTEGER_OR_NULL, INTEGER_OR_NULL.intersection(INTEGER_OR_NULL));
Expect.equals(NULL, INTEGER_OR_NULL.intersection(DOUBLE_OR_NULL));
Expect.equals(NULL, INTEGER_OR_NULL.intersection(STRING_OR_NULL));
Expect.equals(NULL, INTEGER_OR_NULL.intersection(NULL));
Expect.equals(CONFLICTING, INTEGER_OR_NULL.intersection(FIXED_ARRAY));
Expect.equals(CONFLICTING, DOUBLE_OR_NULL.intersection(CONFLICTING));
Expect.equals(DOUBLE_OR_NULL, DOUBLE_OR_NULL.intersection(UNKNOWN));
Expect.equals(CONFLICTING, DOUBLE_OR_NULL.intersection(BOOLEAN));
Expect.equals(DOUBLE, DOUBLE_OR_NULL.intersection(NUMBER));
Expect.equals(CONFLICTING, DOUBLE_OR_NULL.intersection(INTEGER));
Expect.equals(DOUBLE, DOUBLE_OR_NULL.intersection(DOUBLE));
Expect.equals(CONFLICTING, DOUBLE_OR_NULL.intersection(INDEXABLE_PRIMITIVE));
Expect.equals(CONFLICTING, DOUBLE_OR_NULL.intersection(STRING));
Expect.equals(CONFLICTING, DOUBLE_OR_NULL.intersection(READABLE_ARRAY));
Expect.equals(CONFLICTING, DOUBLE_OR_NULL.intersection(MUTABLE_ARRAY));
Expect.equals(CONFLICTING, DOUBLE_OR_NULL.intersection(EXTENDABLE_ARRAY));
Expect.equals(CONFLICTING, DOUBLE_OR_NULL.intersection(NON_PRIMITIVE1));
Expect.equals(CONFLICTING, DOUBLE_OR_NULL.intersection(NON_PRIMITIVE2));
Expect.equals(NULL, DOUBLE_OR_NULL.intersection(POTENTIAL_ARRAY));
Expect.equals(NULL, DOUBLE_OR_NULL.intersection(POTENTIAL_STRING));
Expect.equals(NULL, DOUBLE_OR_NULL.intersection(BOOLEAN_OR_NULL));
Expect.equals(DOUBLE_OR_NULL, DOUBLE_OR_NULL.intersection(NUMBER_OR_NULL));
Expect.equals(NULL, DOUBLE_OR_NULL.intersection(INTEGER_OR_NULL));
Expect.equals(DOUBLE_OR_NULL, DOUBLE_OR_NULL.intersection(DOUBLE_OR_NULL));
Expect.equals(NULL, DOUBLE_OR_NULL.intersection(STRING_OR_NULL));
Expect.equals(NULL, DOUBLE_OR_NULL.intersection(NULL));
Expect.equals(CONFLICTING, DOUBLE_OR_NULL.intersection(FIXED_ARRAY));
Expect.equals(CONFLICTING, STRING_OR_NULL.intersection(CONFLICTING));
Expect.equals(STRING_OR_NULL, STRING_OR_NULL.intersection(UNKNOWN));
Expect.equals(CONFLICTING, STRING_OR_NULL.intersection(BOOLEAN));
Expect.equals(CONFLICTING, STRING_OR_NULL.intersection(NUMBER));
Expect.equals(CONFLICTING, STRING_OR_NULL.intersection(INTEGER));
Expect.equals(CONFLICTING, STRING_OR_NULL.intersection(DOUBLE));
Expect.equals(STRING, STRING_OR_NULL.intersection(INDEXABLE_PRIMITIVE));
Expect.equals(STRING, STRING_OR_NULL.intersection(STRING));
Expect.equals(CONFLICTING, STRING_OR_NULL.intersection(READABLE_ARRAY));
Expect.equals(CONFLICTING, STRING_OR_NULL.intersection(MUTABLE_ARRAY));
Expect.equals(CONFLICTING, STRING_OR_NULL.intersection(EXTENDABLE_ARRAY));
Expect.equals(CONFLICTING, STRING_OR_NULL.intersection(NON_PRIMITIVE1));
Expect.equals(CONFLICTING, STRING_OR_NULL.intersection(NON_PRIMITIVE2));
Expect.equals(NULL, STRING_OR_NULL.intersection(POTENTIAL_ARRAY));
Expect.equals(STRING_OR_NULL, STRING_OR_NULL.intersection(POTENTIAL_STRING));
Expect.equals(NULL, STRING_OR_NULL.intersection(BOOLEAN_OR_NULL));
Expect.equals(NULL, STRING_OR_NULL.intersection(NUMBER_OR_NULL));
Expect.equals(NULL, STRING_OR_NULL.intersection(INTEGER_OR_NULL));
Expect.equals(NULL, STRING_OR_NULL.intersection(DOUBLE_OR_NULL));
Expect.equals(STRING_OR_NULL, STRING_OR_NULL.intersection(STRING_OR_NULL));
Expect.equals(NULL, STRING_OR_NULL.intersection(NULL));
Expect.equals(CONFLICTING, STRING_OR_NULL.intersection(FIXED_ARRAY));
Expect.equals(CONFLICTING, NULL.intersection(CONFLICTING));
Expect.equals(NULL, NULL.intersection(UNKNOWN));
Expect.equals(CONFLICTING, NULL.intersection(BOOLEAN));
Expect.equals(CONFLICTING, NULL.intersection(NUMBER));
Expect.equals(CONFLICTING, NULL.intersection(INTEGER));
Expect.equals(CONFLICTING, NULL.intersection(DOUBLE));
Expect.equals(CONFLICTING, NULL.intersection(INDEXABLE_PRIMITIVE));
Expect.equals(CONFLICTING, NULL.intersection(STRING));
Expect.equals(CONFLICTING, NULL.intersection(READABLE_ARRAY));
Expect.equals(CONFLICTING, NULL.intersection(MUTABLE_ARRAY));
Expect.equals(CONFLICTING, NULL.intersection(EXTENDABLE_ARRAY));
Expect.equals(CONFLICTING, NULL.intersection(NON_PRIMITIVE1));
Expect.equals(CONFLICTING, NULL.intersection(NON_PRIMITIVE2));
Expect.equals(NULL, NULL.intersection(POTENTIAL_ARRAY));
Expect.equals(NULL, NULL.intersection(POTENTIAL_STRING));
Expect.equals(NULL, NULL.intersection(BOOLEAN_OR_NULL));
Expect.equals(NULL, NULL.intersection(NUMBER_OR_NULL));
Expect.equals(NULL, NULL.intersection(INTEGER_OR_NULL));
Expect.equals(NULL, NULL.intersection(DOUBLE_OR_NULL));
Expect.equals(NULL, NULL.intersection(STRING_OR_NULL));
Expect.equals(NULL, NULL.intersection(NULL));
Expect.equals(CONFLICTING, NULL.intersection(FIXED_ARRAY));
Expect.equals(CONFLICTING, FIXED_ARRAY.intersection(CONFLICTING));
Expect.equals(FIXED_ARRAY, FIXED_ARRAY.intersection(UNKNOWN));
Expect.equals(CONFLICTING, FIXED_ARRAY.intersection(BOOLEAN));
Expect.equals(CONFLICTING, FIXED_ARRAY.intersection(NUMBER));
Expect.equals(CONFLICTING, FIXED_ARRAY.intersection(INTEGER));
Expect.equals(CONFLICTING, FIXED_ARRAY.intersection(DOUBLE));
Expect.equals(FIXED_ARRAY, FIXED_ARRAY.intersection(INDEXABLE_PRIMITIVE));
Expect.equals(CONFLICTING, FIXED_ARRAY.intersection(STRING));
Expect.equals(FIXED_ARRAY, FIXED_ARRAY.intersection(READABLE_ARRAY));
Expect.equals(FIXED_ARRAY, FIXED_ARRAY.intersection(MUTABLE_ARRAY));
Expect.equals(CONFLICTING, FIXED_ARRAY.intersection(EXTENDABLE_ARRAY));
Expect.equals(CONFLICTING, FIXED_ARRAY.intersection(NON_PRIMITIVE1));
Expect.equals(CONFLICTING, FIXED_ARRAY.intersection(NON_PRIMITIVE2));
Expect.equals(FIXED_ARRAY, FIXED_ARRAY.intersection(POTENTIAL_ARRAY));
Expect.equals(CONFLICTING, FIXED_ARRAY.intersection(POTENTIAL_STRING));
Expect.equals(CONFLICTING, FIXED_ARRAY.intersection(BOOLEAN_OR_NULL));
Expect.equals(CONFLICTING, FIXED_ARRAY.intersection(NUMBER_OR_NULL));
Expect.equals(CONFLICTING, FIXED_ARRAY.intersection(INTEGER_OR_NULL));
Expect.equals(CONFLICTING, FIXED_ARRAY.intersection(DOUBLE_OR_NULL));
Expect.equals(CONFLICTING, FIXED_ARRAY.intersection(STRING_OR_NULL));
Expect.equals(CONFLICTING, FIXED_ARRAY.intersection(NULL));
Expect.equals(FIXED_ARRAY, FIXED_ARRAY.intersection(FIXED_ARRAY));
}
void main() {
testUnion();
testIntersection();
}