diff options
author | odersky <odersky@gmail.com> | 2017-04-06 13:12:05 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-06 13:12:05 +0200 |
commit | 62c2a1e2d6265cf7f096e4c4e51e4e883bce1514 (patch) | |
tree | 5cd2f9018b4a5ed5fcd1ebe6a6aed392d3fd00b4 /tests/run/planets.scala | |
parent | 2556c83a04af1baf9dd69f6139e9ea61d39e7c6a (diff) | |
parent | 30d8d878118c537ff82c88ef7ade8780b390bfae (diff) | |
download | dotty-62c2a1e2d6265cf7f096e4c4e51e4e883bce1514.tar.gz dotty-62c2a1e2d6265cf7f096e4c4e51e4e883bce1514.tar.bz2 dotty-62c2a1e2d6265cf7f096e4c4e51e4e883bce1514.zip |
Merge pull request #1958 from dotty-staging/add-enum
Add "enum" construct
Diffstat (limited to 'tests/run/planets.scala')
-rw-r--r-- | tests/run/planets.scala | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/run/planets.scala b/tests/run/planets.scala new file mode 100644 index 000000000..bcbfd7eeb --- /dev/null +++ b/tests/run/planets.scala @@ -0,0 +1,26 @@ +enum class Planet(mass: Double, radius: Double) { + private final val G = 6.67300E-11 + def surfaceGravity = G * mass / (radius * radius) + def surfaceWeight(otherMass: Double) = otherMass * surfaceGravity +} +object Planet { + case MERCURY extends Planet(3.303e+23, 2.4397e6) + case VENUS extends Planet(4.869e+24, 6.0518e6) + case EARTH extends Planet(5.976e+24, 6.37814e6) + case MARS extends Planet(6.421e+23, 3.3972e6) + case JUPITER extends Planet(1.9e+27, 7.1492e7) + case SATURN extends Planet(5.688e+26, 6.0268e7) + case URANUS extends Planet(8.686e+25, 2.5559e7) + case NEPTUNE extends Planet(1.024e+26, 2.4746e7) +} +object Test { + def main(args: Array[String]) = { + import Planet._ + assert(enumValueNamed("SATURN") == SATURN) + assert(enumValue(2) == EARTH) + val earthWeight = 100 + val mass = earthWeight/EARTH.surfaceGravity + for (p <- enumValues) + println(s"Your weight on $p is ${p.surfaceWeight(mass)}") + } +} |