|
9 | 9 |
|
10 | 10 | enum DistanceFunComparison: string implements FunComparison |
11 | 11 | { |
12 | | - case CENTURY_RIDE = 'distanceCenturyRide'; |
13 | | - case NETHERLANDS_LENGTH = 'distanceNetherlandsLength'; |
14 | | - case AMSTERDAM_BERLIN_RETURN = 'distanceAmsterdamBerlinReturn'; |
| 12 | + case EDGE_OF_SPACE = 'distanceEdgeOfSpace'; |
| 13 | + case LENGTH_OF_JAMAICA = 'distanceLengthOfJamaica'; |
| 14 | + case MADRID_TO_BARCELONA = 'distanceMadridToBarcelona'; |
15 | 15 | case FRANCE_LENGTH = 'distanceFranceLength'; |
16 | | - case GREAT_BRITAIN_LENGTH = 'distanceGreatBritainLength'; |
17 | | - case RHINE_RIVER = 'distanceRhineRiver'; |
18 | | - case WIDER_THAN_AUSTRALIA = 'distanceWiderThanAustralia'; |
| 16 | + case DANUBE_RIVER = 'distanceDanubeRiver'; |
19 | 17 | case GREAT_WALL_OF_CHINA = 'distanceGreatWallOfChina'; |
20 | | - case USA_COAST_TO_COAST = 'distanceUsaCoastToCoast'; |
21 | | - case TRANS_SIBERIAN_RAILWAY = 'distanceTransSiberianRailway'; |
22 | | - case EARTH_DIAMETER = 'distanceEarthDiameter'; |
| 18 | + case QUARTER_AROUND_EARTH = 'distanceQuarterAroundEarth'; |
| 19 | + case LONDON_TO_PERTH = 'distanceLondonToPerth'; |
23 | 20 | case HALFWAY_AROUND_EARTH = 'distanceHalfwayAroundEarth'; |
| 21 | + case CIRCUMFERENCE_OF_MARS = 'distanceCircumferenceOfMars'; |
| 22 | + case THREE_QUARTERS_AROUND_EARTH = 'distanceThreeQuartersAroundEarth'; |
24 | 23 | case EARTH_CIRCUMFERENCE = 'distanceEarthCircumference'; |
25 | | - case TWICE_AROUND_EARTH = 'distanceTwiceAroundEarth'; |
| 24 | + case DIAMETER_OF_NEPTUNE = 'distanceDiameterOfNeptune'; |
| 25 | + case NEARLY_TWICE_AROUND_EARTH = 'distanceNearlyTwiceAroundEarth'; |
26 | 26 | case TWO_AND_HALF_TIMES_AROUND_EARTH = 'distanceTwoAndHalfTimesAroundEarth'; |
| 27 | + case DIAMETER_OF_JUPITER = 'distanceDiameterOfJupiter'; |
| 28 | + case FIVE_TIMES_AROUND_EARTH = 'distanceFiveTimesAroundEarth'; |
| 29 | + case SPEED_OF_LIGHT_PER_SECOND = 'distanceSpeedOfLightPerSecond'; |
27 | 30 | case EARTH_TO_MOON = 'distanceEarthToMoon'; |
| 31 | + case MORE_THAN_EARTH_TO_MOON = 'distanceMoreThanEarthToMoon'; |
28 | 32 |
|
29 | 33 | public static function resolve(Kilometer $distance): ?self |
30 | 34 | { |
31 | 35 | $km = $distance->toFloat(); |
32 | 36 |
|
33 | 37 | return match (true) { |
34 | | - $km >= 384_400 => self::EARTH_TO_MOON, |
| 38 | + $km >= 500_000 => self::MORE_THAN_EARTH_TO_MOON, |
| 39 | + $km >= 400_000 => self::EARTH_TO_MOON, |
| 40 | + $km >= 300_000 => self::SPEED_OF_LIGHT_PER_SECOND, |
| 41 | + $km >= 200_000 => self::FIVE_TIMES_AROUND_EARTH, |
| 42 | + $km >= 150_000 => self::DIAMETER_OF_JUPITER, |
35 | 43 | $km >= 100_000 => self::TWO_AND_HALF_TIMES_AROUND_EARTH, |
36 | | - $km >= 80_000 => self::TWICE_AROUND_EARTH, |
37 | | - $km >= 40_075 => self::EARTH_CIRCUMFERENCE, |
38 | | - $km >= 20_038 => self::HALFWAY_AROUND_EARTH, |
39 | | - $km >= 12_742 => self::EARTH_DIAMETER, |
40 | | - $km >= 9_288 => self::TRANS_SIBERIAN_RAILWAY, |
41 | | - $km >= 6_671 => self::USA_COAST_TO_COAST, |
| 44 | + $km >= 75_000 => self::NEARLY_TWICE_AROUND_EARTH, |
| 45 | + $km >= 50_000 => self::DIAMETER_OF_NEPTUNE, |
| 46 | + $km >= 40_000 => self::EARTH_CIRCUMFERENCE, |
| 47 | + $km >= 30_000 => self::THREE_QUARTERS_AROUND_EARTH, |
| 48 | + $km >= 25_000 => self::CIRCUMFERENCE_OF_MARS, |
| 49 | + $km >= 20_000 => self::HALFWAY_AROUND_EARTH, |
| 50 | + $km >= 15_000 => self::LONDON_TO_PERTH, |
| 51 | + $km >= 10_000 => self::QUARTER_AROUND_EARTH, |
42 | 52 | $km >= 5_000 => self::GREAT_WALL_OF_CHINA, |
43 | | - $km >= 3_500 => self::WIDER_THAN_AUSTRALIA, |
44 | | - $km >= 2_300 => self::RHINE_RIVER, |
45 | | - $km >= 1_400 => self::GREAT_BRITAIN_LENGTH, |
| 53 | + $km >= 2_500 => self::DANUBE_RIVER, |
46 | 54 | $km >= 1_000 => self::FRANCE_LENGTH, |
47 | | - $km >= 600 => self::AMSTERDAM_BERLIN_RETURN, |
48 | | - $km >= 300 => self::NETHERLANDS_LENGTH, |
49 | | - $km >= 100 => self::CENTURY_RIDE, |
| 55 | + $km >= 500 => self::MADRID_TO_BARCELONA, |
| 56 | + $km >= 250 => self::LENGTH_OF_JAMAICA, |
| 57 | + $km >= 100 => self::EDGE_OF_SPACE, |
50 | 58 | default => null, |
51 | 59 | }; |
52 | 60 | } |
53 | 61 |
|
54 | 62 | public function trans(TranslatorInterface $translator, ?string $locale = null): string |
55 | 63 | { |
56 | 64 | return match ($this) { |
57 | | - self::CENTURY_RIDE => $translator->trans("That's a century ride", locale: $locale), |
58 | | - self::NETHERLANDS_LENGTH => $translator->trans("That's the length of the Netherlands from north to south", locale: $locale), |
59 | | - self::AMSTERDAM_BERLIN_RETURN => $translator->trans("That's the distance from Amsterdam to Berlin and back", locale: $locale), |
| 65 | + self::EDGE_OF_SPACE => $translator->trans("That's the distance to the edge of space, straight up", locale: $locale), |
| 66 | + self::LENGTH_OF_JAMAICA => $translator->trans("That's roughly the length of the island of Jamaica", locale: $locale), |
| 67 | + self::MADRID_TO_BARCELONA => $translator->trans("That's roughly the distance from Madrid to Barcelona", locale: $locale), |
60 | 68 | self::FRANCE_LENGTH => $translator->trans("That's roughly the length of France", locale: $locale), |
61 | | - self::GREAT_BRITAIN_LENGTH => $translator->trans("That's the length of Great Britain from north to south", locale: $locale), |
62 | | - self::RHINE_RIVER => $translator->trans("That's the length of the Rhine river", locale: $locale), |
63 | | - self::WIDER_THAN_AUSTRALIA => $translator->trans("That's wider than Australia", locale: $locale), |
| 69 | + self::DANUBE_RIVER => $translator->trans("That's roughly the length of the Danube river", locale: $locale), |
64 | 70 | self::GREAT_WALL_OF_CHINA => $translator->trans("That's the length of the Great Wall of China", locale: $locale), |
65 | | - self::USA_COAST_TO_COAST => $translator->trans("That's the width of the United States coast to coast", locale: $locale), |
66 | | - self::TRANS_SIBERIAN_RAILWAY => $translator->trans("That's the length of the Trans-Siberian Railway", locale: $locale), |
67 | | - self::EARTH_DIAMETER => $translator->trans("That's the diameter of the Earth", locale: $locale), |
| 71 | + self::QUARTER_AROUND_EARTH => $translator->trans("That's roughly a quarter of the way around the Earth", locale: $locale), |
| 72 | + self::LONDON_TO_PERTH => $translator->trans("That's roughly the distance from London to Perth", locale: $locale), |
68 | 73 | self::HALFWAY_AROUND_EARTH => $translator->trans("That's more than halfway around the Earth", locale: $locale), |
| 74 | + self::CIRCUMFERENCE_OF_MARS => $translator->trans("That's more than the circumference of Mars", locale: $locale), |
| 75 | + self::THREE_QUARTERS_AROUND_EARTH => $translator->trans("That's three quarters of the way around the Earth", locale: $locale), |
69 | 76 | self::EARTH_CIRCUMFERENCE => $translator->trans("That's the circumference of the Earth", locale: $locale), |
70 | | - self::TWICE_AROUND_EARTH => $translator->trans("That's twice around the Earth", locale: $locale), |
| 77 | + self::DIAMETER_OF_NEPTUNE => $translator->trans("That's roughly the diameter of Neptune", locale: $locale), |
| 78 | + self::NEARLY_TWICE_AROUND_EARTH => $translator->trans("That's nearly twice around the Earth", locale: $locale), |
71 | 79 | self::TWO_AND_HALF_TIMES_AROUND_EARTH => $translator->trans("That's more than 2.5 times around the Earth", locale: $locale), |
| 80 | + self::DIAMETER_OF_JUPITER => $translator->trans("That's roughly the diameter of Jupiter", locale: $locale), |
| 81 | + self::FIVE_TIMES_AROUND_EARTH => $translator->trans("That's five times around the Earth", locale: $locale), |
| 82 | + self::SPEED_OF_LIGHT_PER_SECOND => $translator->trans("That's roughly the distance light travels in one second", locale: $locale), |
72 | 83 | self::EARTH_TO_MOON => $translator->trans("That's the distance from Earth to the Moon", locale: $locale), |
| 84 | + self::MORE_THAN_EARTH_TO_MOON => $translator->trans("That's more than the distance from Earth to the Moon", locale: $locale), |
73 | 85 | }; |
74 | 86 | } |
75 | 87 | } |
0 commit comments