Skip to content

Commit

Permalink
local test and coverages done
Browse files Browse the repository at this point in the history
  • Loading branch information
jdinovi committed Dec 21, 2023
1 parent 799b346 commit df88bf8
Show file tree
Hide file tree
Showing 6 changed files with 93 additions and 35 deletions.
16 changes: 11 additions & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -39,18 +39,24 @@ $(TEST_OBJ_DIR)/%.o: $(TEST_DIR)/%.cpp
# Ensure directories exist
$(shell mkdir -p $(OBJ_DIR) $(BIN_DIR) $(TEST_OBJ_DIR))

.PHONY: all
all: $(BIN_DIR)/$(TARGET)

.PHONY: build
build:
@make clean
@make simulation
@make test

.PHONY: simulation
simulation: $(BIN_DIR)/$(TARGET)

.PHONY: test
test: $(BIN_DIR)/$(TEST_TARGET)

.PHONY: coverage
coverage:
@make clean
@make
@make test
./$(BIN_DIR)/$(TEST_TARGET)
@for filename in $(SRCS); do \
echo "\n"; \
obj_file=$(OBJ_DIR)/$${filename%.cpp}.o; \
gcov --object-directory=$(OBJ_DIR) $${filename} -n | grep -v ".*simulation.*" | grep -v ".*\.h" | grep -A 1 "src"; \
echo "\n"; \
Expand Down
1 change: 0 additions & 1 deletion src/environment.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
#include <iostream>
#include <array>
#include <vector>
#include <math.h>
Expand Down
1 change: 0 additions & 1 deletion src/particle.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
#include <iostream>
#include <array>

#include "../include/particle.h"
Expand Down
26 changes: 0 additions & 26 deletions src/simulation.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
#include <iostream>
#include <array>
#include <vector>

Expand All @@ -7,31 +6,6 @@

int main() {

// Parameters for simulation
float timestep = 1;

// Initialize particle specs
double mass = 1E10;
std::array<double, 3> initial_position1 = {0, 0, 0};
std::array<double, 3> initial_position2 = {4, 0, 0};
std::array<double, 3> initial_velocity1 = {0, 0, 0};
std::array<double, 3> initial_velocity2 = {0, 0, 0};


// Define the particles
Particle particle1(&initial_position1, &initial_velocity1, mass);
Particle particle2(&initial_position2, &initial_velocity2, mass);
std::vector<Particle*> particles = {&particle1, &particle2};

// Initialize an environment
GravitationalEnvironment env1(particles);

// Take a step
env1.step(timestep);

std::cout << particle1.position[0] << "\n";
std::cout << particle2.position[0];

return 0;

};
62 changes: 62 additions & 0 deletions test/test_environment.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
#include <array>
#include <vector>

#include "../include/doctest.h"
#include "../include/particle.h"
#include "../include/environment.h"

TEST_CASE("Environment Initialization") {

// Initialize particle specs
double mass = 1E10;
std::array<double, 3> initial_position1 = {0, 0, 0};
std::array<double, 3> initial_position2 = {4, 0, 0};
std::array<double, 3> initial_velocity1 = {0, 0, 0};
std::array<double, 3> initial_velocity2 = {0, 0, 0};

// Define the particles
Particle particle1(&initial_position1, &initial_velocity1, mass);
Particle particle2(&initial_position2, &initial_velocity2, mass);
std::vector<Particle*> particles = {&particle1, &particle2};

// Initialize an environment
GravitationalEnvironment env1(particles);

// Assertions
CHECK(env1.time == 0);
CHECK(env1.particlePtrs.size() == 2);

}

TEST_CASE("Environment Single Step") {

// Parameters for simulation
float timestep = 1;

// Initialize particle specs
double mass = 1E10;
std::array<double, 3> initial_position1 = {0, 0, 0};
std::array<double, 3> initial_position2 = {4, 0, 0};
std::array<double, 3> initial_velocity1 = {0, 0, 0};
std::array<double, 3> initial_velocity2 = {0, 0, 0};

// Define the particles
Particle particle1(&initial_position1, &initial_velocity1, mass);
Particle particle2(&initial_position2, &initial_velocity2, mass);
std::vector<Particle*> particles = {&particle1, &particle2};

// Initialize an environment
GravitationalEnvironment env1(particles);

// Take a step
env1.step(timestep);

// Assertions
CHECK(std::abs(particle1.position[0] - 0.0208572) < 0.0001);
CHECK(env1.time == 1);

}




22 changes: 20 additions & 2 deletions test/test_particle.cpp
Original file line number Diff line number Diff line change
@@ -1,7 +1,25 @@
#include <array>

#include "../include/doctest.h"
#include "../include/particle.h"

TEST_CASE("Particle Test") {
TEST_CASE("Particle Initialization") {

// Initialize particle specs
double mass = 1;
std::array<double, 3> initial_position1 = {0, 0, 0};
std::array<double, 3> initial_velocity1 = {0, 0, 0};

// Define the particle
Particle particle1(&initial_position1, &initial_velocity1, mass);

CHECK(particle1.position[0] == 0);
CHECK(particle1.position[1] == 0);
CHECK(particle1.position[2] == 0);
CHECK(particle1.mass == 1);
}

TEST_CASE("Particle Update") {

// Parameters for a timestep
double timestep = 1;
Expand All @@ -22,4 +40,4 @@ TEST_CASE("Particle Test") {

// Check the update works
CHECK(particle1.position[0] == 1.5);
}
}

0 comments on commit df88bf8

Please sign in to comment.