|  | // 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. | 
|  | // Dart test program for the "is" type test operator. | 
|  |  | 
|  | import "package:expect/expect.dart"; | 
|  |  | 
|  | abstract class I { } | 
|  |  | 
|  | abstract class AI implements I { } | 
|  |  | 
|  | class A implements AI { | 
|  | const A(); | 
|  | } | 
|  |  | 
|  | class B implements I { | 
|  | const B(); | 
|  | } | 
|  |  | 
|  | class C extends A { | 
|  | const C() : super(); | 
|  | } | 
|  |  | 
|  | class IsOperatorTest { | 
|  | static testMain() { | 
|  | var a = new A(); | 
|  | var b = new B(); | 
|  | var c = new C(); | 
|  | var n = null; | 
|  | Expect.equals(true,  a is A); | 
|  | Expect.equals(false, a is !A); | 
|  | Expect.equals(true,  b is B); | 
|  | Expect.equals(false, b is !B); | 
|  | Expect.equals(true,  c is C); | 
|  | Expect.equals(false, c is !C); | 
|  | Expect.equals(true,  c is A); | 
|  | Expect.equals(false, c is !A); | 
|  |  | 
|  | Expect.equals(true,  a is AI); | 
|  | Expect.equals(false, a is !AI); | 
|  | Expect.equals(true,  a is I); | 
|  | Expect.equals(false, a is !I); | 
|  | Expect.equals(false, b is AI); | 
|  | Expect.equals(true,  b is !AI); | 
|  | Expect.equals(true,  b is I); | 
|  | Expect.equals(false, b is !I); | 
|  | Expect.equals(true,  c is AI); | 
|  | Expect.equals(false, c is !AI); | 
|  | Expect.equals(true,  c is I); | 
|  | Expect.equals(false, c is !I); | 
|  | Expect.equals(false, n is AI); | 
|  | Expect.equals(true,  n is !AI); | 
|  | Expect.equals(false, n is I); | 
|  | Expect.equals(true,  n is !I); | 
|  |  | 
|  | Expect.equals(false, a is B); | 
|  | Expect.equals(true,  a is !B); | 
|  | Expect.equals(false, a is C); | 
|  | Expect.equals(true,  a is !C); | 
|  | Expect.equals(false, b is A); | 
|  | Expect.equals(true,  b is !A); | 
|  | Expect.equals(false, b is C); | 
|  | Expect.equals(true,  b is !C); | 
|  | Expect.equals(false, c is B); | 
|  | Expect.equals(true,  c is !B); | 
|  | Expect.equals(false, n is A); | 
|  | Expect.equals(true,  n is !A); | 
|  |  | 
|  | Expect.equals(false, null is A); | 
|  | Expect.equals(false, null is B); | 
|  | Expect.equals(false, null is C); | 
|  | Expect.equals(false, null is AI); | 
|  | Expect.equals(false, null is I); | 
|  |  | 
|  | Expect.equals(true, null is !A); | 
|  | Expect.equals(true, null is !B); | 
|  | Expect.equals(true, null is !C); | 
|  | Expect.equals(true, null is !AI); | 
|  | Expect.equals(true, null is !I); | 
|  | } | 
|  | } | 
|  |  | 
|  | main() { | 
|  | IsOperatorTest.testMain(); | 
|  | } |