blob: 84daba1143b034f0ad499ecf0727e9c5e1e19da8 [file] [log] [blame]
// Copyright (c) 2014, 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.
// SharedOptions=--enable-enum
import 'package:expect/expect.dart';
enum Enum1 { _ }
enum Enum2 { A }
enum Enum3 { B, C }
enum Enum4 { D, E, }
enum Enum5 { F, G, H }
main() {
Expect.equals('Enum1._', Enum1._.toString());
Expect.equals(0, Enum1._.index);
Expect.listEquals([Enum1._], Enum1.values);
Enum1.values.forEach(test1);
Expect.equals('Enum2.A', Enum2.A.toString());
Expect.equals(0, Enum2.A.index);
Expect.listEquals([Enum2.A], Enum2.values);
Enum2.values.forEach(test2);
Expect.equals('Enum3.B', Enum3.B.toString());
Expect.equals('Enum3.C', Enum3.C.toString());
Expect.equals(0, Enum3.B.index);
Expect.equals(1, Enum3.C.index);
Expect.listEquals([Enum3.B, Enum3.C], Enum3.values);
Enum3.values.forEach(test3);
Expect.equals('Enum4.D', Enum4.D.toString());
Expect.equals('Enum4.E', Enum4.E.toString());
Expect.equals(0, Enum4.D.index);
Expect.equals(1, Enum4.E.index);
Expect.listEquals([Enum4.D, Enum4.E], Enum4.values);
Enum4.values.forEach(test4);
Expect.equals('Enum5.F', Enum5.F.toString());
Expect.equals('Enum5.G', Enum5.G.toString());
Expect.equals('Enum5.H', Enum5.H.toString());
Expect.equals(0, Enum5.F.index);
Expect.equals(1, Enum5.G.index);
Expect.equals(2, Enum5.H.index);
Expect.listEquals([Enum5.F, Enum5.G, Enum5.H], Enum5.values);
Enum5.values.forEach(test5);
}
test1(Enum1 e) {
int index;
switch (e) {
case Enum1._:
index = 0;
break;
}
Expect.equals(e.index, index);
}
test2(Enum2 e) {
int index;
switch (e) {
case Enum2.A:
index = 0;
break;
}
Expect.equals(e.index, index);
}
test3(Enum3 e) {
int index;
switch (e) {
case Enum3.C:
index = 1;
break;
case Enum3.B:
index = 0;
break;
}
Expect.equals(e.index, index);
}
test4(Enum4 e) {
int index;
switch (e) {
case Enum4.D:
index = 0;
break;
case Enum4.E:
index = 1;
break;
}
Expect.equals(e.index, index);
}
test5(Enum5 e) {
int index;
switch (e) {
case Enum5.H:
index = 2;
break;
case Enum5.F:
index = 0;
break;
case Enum5.G:
index = 1;
break;
}
Expect.equals(e.index, index);
}