diff options
author | michelou <michelou@epfl.ch> | 2004-06-09 16:22:19 +0000 |
---|---|---|
committer | michelou <michelou@epfl.ch> | 2004-06-09 16:22:19 +0000 |
commit | e73cc0dbf5ffa51e52ea0904a030798cb3c87022 (patch) | |
tree | c94f97ae0bba26ec4737f4b1323fcca214801f0b /test/files/run/enums.scala | |
parent | 5dacc66587c49a52fc060a935eda24507f6ec84b (diff) | |
download | scala-e73cc0dbf5ffa51e52ea0904a030798cb3c87022.tar.gz scala-e73cc0dbf5ffa51e52ea0904a030798cb3c87022.tar.bz2 scala-e73cc0dbf5ffa51e52ea0904a030798cb3c87022.zip |
*** empty log message ***
Diffstat (limited to 'test/files/run/enums.scala')
-rw-r--r-- | test/files/run/enums.scala | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/test/files/run/enums.scala b/test/files/run/enums.scala new file mode 100644 index 0000000000..91fea177ad --- /dev/null +++ b/test/files/run/enums.scala @@ -0,0 +1,81 @@ +//############################################################################ +// Enumerations +//############################################################################ +// $Id$ + +object Test1 { + + object WeekDays extends Enumeration { + val Mon, Tue, Wed, Thu, Fri, Sat, Sun = Value + } + + def isWorkingDay(d: WeekDays.Value) = + ! (d == WeekDays.Sat || d == WeekDays.Sun); + + def run: Int = { + val it = WeekDays filter (isWorkingDay); + it.toList.length + } +} + +object Test2 { + + object ThreadState extends Enumeration { + val New = Value("NEW"); + val Runnable = Value("RUNNABLE"); + val Blocked = Value("BLOCKED"); + val Waiting = Value("WAITING"); + val TimedWaiting = Value("TIMED_WAITING"); + val Terminated = Value("TERMINATED"); + } + + def run: Int = { + val it = for (val s <- ThreadState; s.id != 0) yield s; + it.toList.length + } +} + +object Test3 { + + object Direction extends Enumeration("North", "South", "East", "West") { + val North, South, East, West = Value; + } + + def run: Int = { + val it = for (val d <- Direction; d.toString() startsWith "N") yield d; + it.toList.length + } +} + +//############################################################################ +// Test code + +object Test { + import java.lang.System; + + def check_success(name: String, def closure: Int, expected: Int): Unit = { + System.out.print("test " + name); + try { + val actual: Int = closure; + if (actual == expected) { + System.out.print(" was successful"); + } else { + System.out.print(" failed: expected "+ expected +", found "+ actual); + } + } catch { + case exception: Throwable => { + System.out.print(" raised exception " + exception); + } + } + System.out.println(); + } + + def main(args: Array[String]): Unit = { + check_success("Test1", Test1.run, 5); + check_success("Test2", Test2.run, 5); + check_success("Test3", Test3.run, 1); + System.out.println(); + } +} + +//############################################################################ |