Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
apriljunge committed Jan 20, 2022
0 parents commit c0ffed3
Show file tree
Hide file tree
Showing 10 changed files with 247 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
.idea
out
11 changes: 11 additions & 0 deletions Tests_Ue5/test.iml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="jdk" jdkName="openjdk-15" jdkType="JavaSDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
58 changes: 58 additions & 0 deletions Tests_Ue5/trafficsim/model/grid/RoadTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package trafficsim.model.grid;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import trafficsim.model.traffic.Car;
import trafficsim.model.traffic.Vehicle;

import java.lang.reflect.Method;
import java.util.Arrays;

import static org.junit.jupiter.api.Assertions.*;

class RoadTest{

//transfer_toNewRoad + move_isFirst produce sometimes error

private Road r1 = new Road(5,1);
private Road r2 = new Road(5,1);
private final Car c1 = new Car(4);
private final Car c2 = new Car(4);

@BeforeEach
void setUp(){
r1.setLength(50);
r2.setLength(50);
}

@Test
void setLength(){
assertEquals(50, r1.getLength());
assertEquals(50, r1.getRoad().length);
}

@Test
void vehicleInteraction(){
//add car
r1.addVehicle(c1, 5);
Vehicle[] array = r1.getRoad();
assertEquals(c1, array[5]);

//get car
assertEquals(c1, r1.getVehicle(5));

//Remove car
r1.removeVehicle(c1);
array = r1.getRoad();
assertNull(array[5]);
}

@Test
void clearTest(){
String temp = r1.getRoad().toString();
r1.clearRoad();
assertNotEquals(temp, r1.getRoad().toString());

}

}
15 changes: 15 additions & 0 deletions Tests_Ue5/trafficsim/model/traffic/CarTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package trafficsim.model.traffic;

import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.*;

class CarTest extends Vehicle {
private final Car car = new Car(10);
private final Truck truck = new Truck(5);
@Test
void testSpeed(){
assertEquals(10, car.getSpeed());
assertEquals(5, truck.getSpeed());
}
}
78 changes: 78 additions & 0 deletions src/trafficsim/model/grid/Road.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
package trafficsim.model.grid;

import trafficsim.model.traffic.Vehicle;

import java.util.Arrays;
import java.util.Random;

public class Road {
private int maxV;
private int length;
private double dawdleFactor;
private Random rnd = new Random();
private Vehicle[] road;
private TrafficNode roadEnd;

public Road(int maxV, double dawdleFactor) {
this.maxV = maxV;
this.dawdleFactor = dawdleFactor;
}

public int getMaxV() {
return maxV;
}

public void setMaxV(int maxV) {
this.maxV = maxV;
}

public int getLength() {
return length;
}

public void setLength(int length) {
this.length = length;
this.road = new Vehicle[length];
}

public double getDawdleFactor() {
return dawdleFactor;
}

public void setDawdleFactor(double dawdleFactor) {
this.dawdleFactor = dawdleFactor;
}

public Vehicle[] getRoad() {
return road;
}

public void setRoad(Vehicle[] road) {
this.road = road;
}

public TrafficNode getRoadEnd() {
return roadEnd;
}

public void setRoadEnd(TrafficNode roadEnd) {
this.roadEnd = roadEnd;
}

public void addVehicle(Vehicle v, int position) {
this.road[position] = v;
}

public void removeVehicle(Vehicle v) {
int position = Arrays.asList(this.road).indexOf(v);
this.road[position] = null;
}

public void clearRoad() {
this.road = new Vehicle[this.length];
}

public Vehicle getVehicle(int position) {
return this.road[position];
}
}
4 changes: 4 additions & 0 deletions src/trafficsim/model/grid/TrafficNode.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package trafficsim.model.grid;

public interface TrafficNode {
}
12 changes: 12 additions & 0 deletions src/trafficsim/model/traffic/Car.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package trafficsim.model.traffic;

import java.awt.*;

public class Car extends Vehicle {
public Car (int speed) {
super.speed = speed;
super.length = 9;
super.width = 3;
super.color = Color.BLUE;
}
}
12 changes: 12 additions & 0 deletions src/trafficsim/model/traffic/Truck.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package trafficsim.model.traffic;

import java.awt.*;

public class Truck extends Vehicle {
public Truck (int speed) {
super.speed = speed;
super.length = 20;
super.width = 5;
super.color = Color.BLACK;
}
}
42 changes: 42 additions & 0 deletions src/trafficsim/model/traffic/Vehicle.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package trafficsim.model.traffic;

import java.awt.*;

public class Vehicle {
protected int speed;
protected int length;
protected int width;
protected Color color;

public int getSpeed() {
return speed;
}

public void setSpeed(int speed) {
this.speed = speed;
}

public int getLength() {
return length;
}

public void setLength(int length) {
this.length = length;
}

public int getWidth() {
return width;
}

public void setWidth(int width) {
this.width = width;
}

public Color getColor() {
return color;
}

public void setColor(Color color) {
this.color = color;
}
}
13 changes: 13 additions & 0 deletions trafficsim.iml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/Tests_Ue5" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="org.junit.jupiter:junit-jupiter:5.8.1" level="project" />
</component>
</module>

0 comments on commit c0ffed3

Please sign in to comment.