Skip to content
This repository was archived by the owner on Jun 17, 2025. It is now read-only.
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
3 changes: 3 additions & 0 deletions src/main/java/MakeItFit/MakeItFit.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,10 @@ public class MakeItFit implements Serializable {
public MakeItFit() {
this.userManager = new UserManager();
this.trainingPlanManager = new TrainingPlanManager();
/* Parameters aren't being used
this.queriesManager = new QueriesManager(userManager, trainingPlanManager);
*/
this.queriesManager = new QueriesManager();
}

/**
Expand Down
14 changes: 13 additions & 1 deletion src/main/java/MakeItFit/queries/HowManyAltimetryDone.java
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,19 @@ public double executeQuery(UserManager userManager,
User user = userManager.getUserByEmail(email);
double altimetry = 0;
for (Activity a : user.getListActivities()) {

/* fails testExecuteQueryWithDatesActivitiesOutsideTimeWindow
if (a instanceof DistanceWithAltimetry) {
altimetry += ((DistanceWithAltimetry) a).getElevationGain() +
((DistanceWithAltimetry) a).getElevationLoss();
}
*/

if (a instanceof DistanceWithAltimetry && a.getRealizationDate().isAfter(date1) &&
date2.isAfter(a.getRealizationDate())) {

altimetry += ((DistanceWithAltimetry) a).getElevationGain() +
((DistanceWithAltimetry) a).getElevationLoss();
}
}
return altimetry;

Expand All @@ -64,8 +72,12 @@ public double executeQuery(UserManager userManager, String email) {
double altimetry = 0;
for (Activity a : user.getListActivities()) {
if (a instanceof DistanceWithAltimetry) {
/* fails testExecuteQueryReturnsTrueAltimetry
altimetry += ((DistanceWithAltimetry) a).getElevationGain() -
((DistanceWithAltimetry) a).getElevationLoss();
*/
altimetry += ((DistanceWithAltimetry) a).getElevationGain() +
((DistanceWithAltimetry) a).getElevationLoss();
}
}
return altimetry;
Expand Down
12 changes: 11 additions & 1 deletion src/main/java/MakeItFit/queries/MostDoneActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@ public String executeQuery(UserManager userManager) {
}
}
}
int maxIndex = max(count);

int maxIndex = max(count);
String mostDoneActivity;
switch (maxIndex) {
case 0:
Expand All @@ -52,15 +52,25 @@ public String executeQuery(UserManager userManager) {
case 1:
mostDoneActivity = "Distance";
break;
/* fails testExecuteQuerySingleUserReturnsRepetitions/RepetitionsWithWeights
case 2:
mostDoneActivity = "Repetitions";
break;
case 3:
mostDoneActivity = "RepetitionsWithWeights";
break;
*/
case 2:
mostDoneActivity = "RepetitionsWithWeights";
break;
default:
mostDoneActivity = "Repetitions";
break;
/* Would never be reached (dead code)
default:
mostDoneActivity = "No activities";
break;
*/
};
return mostDoneActivity;
}
Expand Down
3 changes: 3 additions & 0 deletions src/main/java/MakeItFit/queries/QueriesManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,10 @@ public class QueriesManager implements Serializable {
/**
* Constructs a new queries manager.
*/
/* Parameters aren't being used
public QueriesManager(UserManager userManager, TrainingPlanManager trainingPlanManager) {
*/
public QueriesManager() {
this.howManyAltimetryDone = new HowManyAltimetryDone();
this.howManyKMsDone = new HowManyKMsDone();
this.mostDoneActivity = new MostDoneActivity();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import java.util.List;

import MakeItFit.activities.Activity;
import MakeItFit.activities.types.DistanceWithAltimetry;
import MakeItFit.users.User;
import MakeItFit.users.UserManager;
import MakeItFit.utils.MakeItFitDate;
Expand Down
127 changes: 127 additions & 0 deletions src/unittests/java/MakeItFit/queries/HowManyAltimetryDoneTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
package MakeItFit.queries;

import java.util.Arrays;

import MakeItFit.activities.implementation.PushUp;
import MakeItFit.activities.implementation.Trail;
import MakeItFit.users.Gender;
import MakeItFit.users.User;
import MakeItFit.users.UserManager;
import MakeItFit.users.types.Professional;
import MakeItFit.utils.MakeItFitDate;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;

public class HowManyAltimetryDoneTest {
private HowManyAltimetryDone query;
private UserManager userManager;
private User user;

private Trail createTrail(MakeItFitDate date, double elevationGain, double getElevationLoss) {
return new Trail(user.getCode(),
date,
90,
"Hiking",
"Subir ao Bom Jesus",
2000.0,
elevationGain,
getElevationLoss,
1);
}

private PushUp createPushUp(MakeItFitDate date) {
return new PushUp(user.getCode(), date, 90, "PushUps", "100x", 10, 100);
}

@BeforeEach
void testSetup() {
this.query = new HowManyAltimetryDone();
this.userManager = new UserManager();

this.user = new Professional("JohnDoe",
21,
Gender.Male,
59,
150,
60,
6,
"Lloyd",
"987 123 432",
"jd@suspect.pt",
7);
}

@Test
void testExecuteQueryWithDatesReturnsTrueAltimetry() {
user.addActivities(
Arrays.asList(createTrail(MakeItFitDate.of(1999, 2, 9), 229.12, 142.0),
createTrail(MakeItFitDate.of(1999, 2, 14), 654.129, 532.0)));
userManager.insertUser(user);

assertEquals(229.12 + 142.0 + 654.129 + 532.0,
query.executeQuery(userManager,
"jd@suspect.pt",
MakeItFitDate.of(1999, 2, 8),
MakeItFitDate.of(1999, 3, 1)),
0.0001);
}

@Test
void testExecuteQueryWithDatesThrows() {
assertThrows(IllegalArgumentException.class,
()
-> query.executeQuery(userManager,
"jd@suspect.pt",
MakeItFitDate.of(1999, 2, 9),
MakeItFitDate.of(1999, 2, 9)));
}

@Test
void testExecuteQueryWithDatesNoValidActivities() {
user.addActivities(Arrays.asList(createPushUp(MakeItFitDate.of(1999, 2, 9))));
userManager.insertUser(user);

assertEquals(0,
query.executeQuery(userManager,
"jd@suspect.pt",
MakeItFitDate.of(1999, 2, 8),
MakeItFitDate.of(1999, 3, 1)));
}

@Test
void testExecuteQueryWithDatesActivitiesOutsideTimeWindow() {
user.addActivities(
Arrays.asList(createTrail(MakeItFitDate.of(1999, 2, 9), 229.12, 142.0),
createTrail(MakeItFitDate.of(1999, 2, 14), 654.129, 532.0)));
userManager.insertUser(user);

assertEquals(0,
query.executeQuery(userManager,
"jd@suspect.pt",
MakeItFitDate.of(1999, 4, 9),
MakeItFitDate.of(1999, 4, 10)));
}

@Test
void testExecuteQueryReturnsTrueAltimetry() {
user.addActivities(
Arrays.asList(createTrail(MakeItFitDate.of(1999, 2, 9), 229.12, 142.0),
createTrail(MakeItFitDate.of(1999, 2, 14), 654.129, 532.0)));
userManager.insertUser(user);

assertEquals(229.12 + 142.0 + 654.129 + 532.0,
query.executeQuery(userManager, "jd@suspect.pt"),
0.0001);
}

@Test
void testExecuteQueryActivitiesOutsideTimeWindow() {
user.addActivities(Arrays.asList(createPushUp(MakeItFitDate.of(1999, 2, 9))));
userManager.insertUser(user);

assertEquals(0, query.executeQuery(userManager, "jd@suspect.pt"));
}
}
121 changes: 121 additions & 0 deletions src/unittests/java/MakeItFit/queries/HowManyKMsDoneTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
package MakeItFit.queries;

import java.util.Arrays;

import MakeItFit.activities.implementation.PushUp;
import MakeItFit.activities.implementation.Running;
import MakeItFit.users.Gender;
import MakeItFit.users.User;
import MakeItFit.users.UserManager;
import MakeItFit.users.types.Professional;
import MakeItFit.utils.MakeItFitDate;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;

public class HowManyKMsDoneTest {
private HowManyKMsDone query;
private UserManager userManager;
private User user;

private Running createRunning(MakeItFitDate date, double distance) {
return new Running(user.getCode(),
date,
84,
"StreetRace",
"Corrida de Viana",
distance,
12);
}

private PushUp createPushUp(MakeItFitDate date) {
return new PushUp(user.getCode(), date, 90, "PushUps", "100x", 10, 100);
}

@BeforeEach
void testSetup() {
this.query = new HowManyKMsDone();
this.userManager = new UserManager();

this.user = new Professional("JohnDoe",
21,
Gender.Male,
59,
150,
60,
6,
"Lloyd",
"987 123 432",
"jd@suspect.pt",
7);
}

@Test
void testExecuteQueryWithDatesReturnsTrueDistance() {
user.addActivities(Arrays.asList(createRunning(MakeItFitDate.of(1999, 2, 9), 20000.0),
createRunning(MakeItFitDate.of(1999, 3, 9), 4567.231)));
userManager.insertUser(user);

assertEquals((20000.0 + 4567.231) / 1000,
query.executeQuery(userManager,
"jd@suspect.pt",
MakeItFitDate.of(1999, 2, 8),
MakeItFitDate.of(1999, 3, 10)),
0.0001);
}

@Test
void testExecuteQueryWithDatesThrows() {
assertThrows(IllegalArgumentException.class,
()
-> query.executeQuery(userManager,
"jd@suspect.pt",
MakeItFitDate.of(1999, 2, 9),
MakeItFitDate.of(1999, 2, 9)));
}

@Test
void testExecuteQueryWithDatesNoValidActivities() {
user.addActivities(Arrays.asList(createPushUp(MakeItFitDate.of(1999, 2, 9))));
userManager.insertUser(user);

assertEquals(0,
query.executeQuery(userManager,
"jd@suspect.pt",
MakeItFitDate.of(1999, 2, 9),
MakeItFitDate.of(1999, 3, 1)));
}

@Test
void testExecuteQueryWithDatesActivitiesOutsideTimeWindow() {
user.addActivities(Arrays.asList(createRunning(MakeItFitDate.of(1999, 2, 9), 123.143)));
userManager.insertUser(user);

assertEquals(0,
query.executeQuery(userManager,
"jd@suspect.pt",
MakeItFitDate.of(1999, 2, 9),
MakeItFitDate.of(1999, 4, 10)));
}

@Test
void testExecuteQueryReturnsTrueDistance() {
user.addActivities(Arrays.asList(createRunning(MakeItFitDate.of(1999, 2, 9), 2122.12),
createRunning(MakeItFitDate.of(1999, 2, 14), 233.231)));
userManager.insertUser(user);

assertEquals((2122.12 + 233.231) / 1000,
query.executeQuery(userManager, "jd@suspect.pt"),
0.0001);
}

@Test
void testExecuteQueryNoValidActivities() {
user.addActivities(Arrays.asList(createPushUp(MakeItFitDate.of(1999, 2, 9))));
userManager.insertUser(user);

assertEquals(0, query.executeQuery(userManager, "jd@suspect.pt"));
}
}
Loading