| // Copyright (c) 2015, 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. |
| |
| // @dart = 2.9 |
| |
| import "package:expect/expect.dart"; |
| import "inheritance_chain_lib.dart"; |
| |
| class A extends B { |
| get id => "A"; |
| get length => 1; |
| } |
| |
| class C extends D { |
| get id => "C"; |
| get length => 3; |
| } |
| |
| class X extends W { |
| get id => "X"; |
| get length => -3; |
| } |
| |
| class Z extends Y { |
| get id => "Z"; |
| get length => -1; |
| } |
| |
| main() { |
| var instances = <dynamic>[ |
| new A(), |
| new B(), |
| new C(), |
| new D(), |
| new W(), |
| new X(), |
| new Y(), |
| new Z(), |
| [], |
| ]; |
| |
| var o = instances[0]; |
| Expect.equals("A", o.id); |
| Expect.equals(1, o.length); |
| Expect.isTrue(o is A); |
| Expect.isTrue(o is B); |
| Expect.isTrue(o is C); |
| Expect.isTrue(o is D); |
| Expect.isTrue(o is W); |
| Expect.isTrue(o is X); |
| Expect.isTrue(o is Y); |
| Expect.isTrue(o is Z); |
| o = instances[1]; |
| Expect.equals("B", o.id); |
| Expect.equals(2, o.length); |
| Expect.isTrue(o is B); |
| Expect.isTrue(o is C); |
| Expect.isTrue(o is D); |
| Expect.isTrue(o is W); |
| Expect.isTrue(o is X); |
| Expect.isTrue(o is Y); |
| Expect.isTrue(o is Z); |
| o = instances[2]; |
| Expect.equals("C", o.id); |
| Expect.equals(3, o.length); |
| Expect.isTrue(o is C); |
| Expect.isTrue(o is D); |
| Expect.isTrue(o is W); |
| Expect.isTrue(o is X); |
| Expect.isTrue(o is Y); |
| Expect.isTrue(o is Z); |
| o = instances[3]; |
| Expect.equals("D", o.id); |
| Expect.equals(4, o.length); |
| Expect.isTrue(o is D); |
| Expect.isTrue(o is W); |
| Expect.isTrue(o is X); |
| Expect.isTrue(o is Y); |
| Expect.isTrue(o is Z); |
| o = instances[4]; |
| Expect.equals("W", o.id); |
| Expect.equals(-4, o.length); |
| Expect.isTrue(o is W); |
| o = instances[5]; |
| Expect.equals("X", o.id); |
| Expect.equals(-3, o.length); |
| Expect.isTrue(o is X); |
| Expect.isTrue(o is W); |
| o = instances[6]; |
| Expect.equals("Y", o.id); |
| Expect.equals(-2, o.length); |
| Expect.isTrue(o is Y); |
| Expect.isTrue(o is X); |
| Expect.isTrue(o is W); |
| o = instances[7]; |
| Expect.equals("Z", o.id); |
| Expect.equals(-1, o.length); |
| Expect.isTrue(o is Z); |
| Expect.isTrue(o is Y); |
| Expect.isTrue(o is X); |
| Expect.isTrue(o is W); |
| o = instances[8]; |
| Expect.equals(0, o.length); |
| } |