Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions config.json
Original file line number Diff line number Diff line change
Expand Up @@ -110,8 +110,8 @@
"status": "active"
},
{
"slug": "elons-toy-car",
"name": "Elon's Toy Car",
"slug": "jedliks-toy-car",
"name": "Jedlik's Toy Car",
"uuid": "2ae791e9-eb7a-4344-841d-0c4797e5106c",
"concepts": [
"classes"
Expand Down
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -15,38 +15,38 @@ You have six tasks, each of which will work with remote controlled car instances

## 1. Buy a brand-new remote controlled car

Implement the (_static_) `ElonsToyCar.buy()` method to return a brand-new remote controlled car instance:
Implement the (_static_) `JedliksToyCar.buy()` method to return a brand-new remote controlled car instance:

```java
ElonsToyCar car = ElonsToyCar.buy();
JedliksToyCar car = JedliksToyCar.buy();
```

## 2. Display the distance driven

Implement the `ElonsToyCar.distanceDisplay()` method to return the distance as displayed on the LED display:
Implement the `JedliksToyCar.distanceDisplay()` method to return the distance as displayed on the LED display:

```java
ElonsToyCar car = ElonsToyCar.buy();
JedliksToyCar car = JedliksToyCar.buy();
car.distanceDisplay();
// => "Driven 0 meters"
```

## 3. Display the battery percentage

Implement the `ElonsToyCar.batteryDisplay()` method to return the battery percentage as displayed on the LED display:
Implement the `JedliksToyCar.batteryDisplay()` method to return the battery percentage as displayed on the LED display:

```java
ElonsToyCar car = ElonsToyCar.buy();
JedliksToyCar car = JedliksToyCar.buy();
car.batteryDisplay();
// => "Battery at 100%"
```

## 4. Update the number of meters driven when driving

Implement the `ElonsToyCar.drive()` method that updates the number of meters driven:
Implement the `JedliksToyCar.drive()` method that updates the number of meters driven:

```java
ElonsToyCar car = ElonsToyCar.buy();
JedliksToyCar car = JedliksToyCar.buy();
car.drive();
car.drive();
car.distanceDisplay();
Expand All @@ -55,10 +55,10 @@ car.distanceDisplay();

## 5. Update the battery percentage when driving

Update the `ElonsToyCar.drive()` method to update the battery percentage:
Update the `JedliksToyCar.drive()` method to update the battery percentage:

```java
ElonsToyCar car = ElonsToyCar.buy();
JedliksToyCar car = JedliksToyCar.buy();
car.drive();
car.drive();
car.batteryDisplay();
Expand All @@ -67,10 +67,10 @@ car.batteryDisplay();

## 6. Prevent driving when the battery is drained

Update the `ElonsToyCar.drive()` method to not increase the distance driven nor decrease the battery percentage when the battery is drained (at 0%):
Update the `JedliksToyCar.drive()` method to not increase the distance driven nor decrease the battery percentage when the battery is drained (at 0%):

```java
ElonsToyCar car = ElonsToyCar.buy();
JedliksToyCar car = JedliksToyCar.buy();

// Drain the battery
// ...
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,18 @@
],
"files": {
"solution": [
"src/main/java/ElonsToyCar.java"
"src/main/java/JedliksToyCar.java"
],
"test": [
"src/test/java/ElonsToyCarTest.java"
"src/test/java/JedliksToyCarTest.java"
],
"exemplar": [
".meta/src/reference/java/ElonsToyCar.java"
".meta/src/reference/java/JedliksToyCar.java"
],
"invalidator": [
"build.gradle"
]
},
"icon": "elons-toys",
"icon": "jedliks-toys",
"blurb": "Learn about classes by working on a remote controlled car."
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
class ElonsToyCar {
class JedliksToyCar {
private int batteryPercentage = 100;
private int distanceDrivenInMeters = 0;

Expand All @@ -21,7 +21,7 @@ public String batteryDisplay() {
return "Battery at " + batteryPercentage + "%";
}

public static ElonsToyCar buy() {
return new ElonsToyCar();
public static JedliksToyCar buy() {
return new JedliksToyCar();
}
}
Binary file not shown.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
public class ElonsToyCar {
public static ElonsToyCar buy() {
throw new UnsupportedOperationException("Please implement the (static) ElonsToyCar.buy() method");
public class JedliksToyCar {
public static JedliksToyCar buy() {
throw new UnsupportedOperationException("Please implement the (static) JedliksToyCar.buy() method");
}

public String distanceDisplay() {
throw new UnsupportedOperationException("Please implement the ElonsToyCar.distanceDisplay() method");
throw new UnsupportedOperationException("Please implement the JedliksToyCar.distanceDisplay() method");
}

public String batteryDisplay() {
throw new UnsupportedOperationException("Please implement the ElonsToyCar.batteryDisplay() method");
throw new UnsupportedOperationException("Please implement the JedliksToyCar.batteryDisplay() method");
}

public void drive() {
throw new UnsupportedOperationException("Please implement the ElonsToyCar.drive() method");
throw new UnsupportedOperationException("Please implement the JedliksToyCar.drive() method");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,45 +4,45 @@

import static org.assertj.core.api.Assertions.assertThat;

public class ElonsToyCarTest {
public class JedliksToyCarTest {
@Test
@Tag("task:1")
@DisplayName("The static buy method returns a new remote controlled car instance")
public void buy_new_car_returns_instance() {
ElonsToyCar car = ElonsToyCar.buy();
JedliksToyCar car = JedliksToyCar.buy();
assertThat(car).isNotNull();
}

@Test
@Tag("task:1")
@DisplayName("The static buy method returns each time a new remote controlled car instance")
public void buy_new_car_returns_new_car_each_time() {
ElonsToyCar car1 = ElonsToyCar.buy();
ElonsToyCar car2 = ElonsToyCar.buy();
JedliksToyCar car1 = JedliksToyCar.buy();
JedliksToyCar car2 = JedliksToyCar.buy();
assertThat(car1).isNotEqualTo(car2);
}

@Test
@Tag("task:2")
@DisplayName("The distanceDisplay method shows 0 meters message on a new car")
public void new_car_distance_display() {
ElonsToyCar car = new ElonsToyCar();
JedliksToyCar car = new JedliksToyCar();
assertThat(car.distanceDisplay()).isEqualTo("Driven 0 meters");
}

@Test
@Tag("task:3")
@DisplayName("The batteryDisplay method shows full battery message on a new car")
public void new_car_battery_display() {
ElonsToyCar car = new ElonsToyCar();
JedliksToyCar car = new JedliksToyCar();
assertThat(car.batteryDisplay()).isEqualTo("Battery at 100%");
}

@Test
@Tag("task:4")
@DisplayName("The distanceDisplay method shows the correct message after driving once")
public void distance_display_after_driving_once() {
ElonsToyCar car = new ElonsToyCar();
JedliksToyCar car = new JedliksToyCar();
car.drive();
assertThat(car.distanceDisplay()).isEqualTo("Driven 20 meters");
}
Expand All @@ -51,7 +51,7 @@ public void distance_display_after_driving_once() {
@Tag("task:4")
@DisplayName("The distanceDisplay method shows the correct message after driving multiple times")
public void distance_display_after_driving_multiple_times() {
ElonsToyCar car = new ElonsToyCar();
JedliksToyCar car = new JedliksToyCar();

for (int i = 0; i < 17; i++) {
car.drive();
Expand All @@ -64,7 +64,7 @@ public void distance_display_after_driving_multiple_times() {
@Tag("task:5")
@DisplayName("The batteryDisplay method shows the correct message after driving once")
public void battery_display_after_driving_once() {
ElonsToyCar car = new ElonsToyCar();
JedliksToyCar car = new JedliksToyCar();
car.drive();

assertThat(car.batteryDisplay()).isEqualTo("Battery at 99%");
Expand All @@ -74,7 +74,7 @@ public void battery_display_after_driving_once() {
@Tag("task:5")
@DisplayName("The batteryDisplay method shows the correct battery percentage after driving multiple times")
public void battery_display_after_driving_multiple_times() {
ElonsToyCar car = new ElonsToyCar();
JedliksToyCar car = new JedliksToyCar();

for (int i = 0; i < 23; i++) {
car.drive();
Expand All @@ -87,7 +87,7 @@ public void battery_display_after_driving_multiple_times() {
@Tag("task:5")
@DisplayName("The batteryDisplay method shows battery empty after draining all battery")
public void battery_display_when_battery_empty() {
ElonsToyCar car = new ElonsToyCar();
JedliksToyCar car = new JedliksToyCar();

// Drain the battery
for (int i = 0; i < 100; i++) {
Expand All @@ -104,7 +104,7 @@ public void battery_display_when_battery_empty() {
@Tag("task:6")
@DisplayName("The distanceDisplay method shows the correct message after driving and draining all battery")
public void distance_display_when_battery_empty() {
ElonsToyCar car = new ElonsToyCar();
JedliksToyCar car = new JedliksToyCar();

// Drain the battery
for (int i = 0; i < 100; i++) {
Expand Down
2 changes: 1 addition & 1 deletion exercises/settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ include 'concept:booking-up-for-beauty'
include 'concept:calculator-conundrum'
include 'concept:captains-log'
include 'concept:cars-assemble'
include 'concept:elons-toy-car'
include 'concept:jedliks-toy-car'
include 'concept:football-match-reports'
include 'concept:gotta-snatch-em-all'
include 'concept:international-calling-connoisseur'
Expand Down