// 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. 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 = [ 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); }