fixed errors in cost calculation

This commit is contained in:
StanislausCichocki
2025-03-14 10:47:54 +01:00
parent 6c3dc79f37
commit e9accc56cc
9 changed files with 44 additions and 22 deletions

View File

@ -8,6 +8,7 @@
#include "../../src/model/Building.h"
#include "../../src/model/Community.h"
#include "../../src/model/Energy_Tariff.h"
#include "../../src/Config.h"
namespace Building {
class Cost;
@ -43,12 +44,14 @@ public:
std::unique_ptr<Building::Metadata> static create_test_metadata() {
auto metadata = std::make_unique<Building::Metadata>();
metadata->set_name("Test Building");
metadata->set_annual_consumption(12000.0f);
metadata->set_annual_generation(5000.0f);
metadata->set_annual_consumption(3000.0f);
metadata->set_annual_generation(0.0f);
metadata->set_consumption_profile_name("Profile_1");
metadata->set_generation_profile_name("Profile_2");
metadata->set_connection_power(100);
metadata->set_connection_power(1);
metadata->set_grid_power(50);
metadata->set_consumption_net_price(0.10f);
metadata->set_generation_net_price(0.12f);
metadata->set_special_rate_consumption(0.15f);
metadata->set_special_rate_generation(0.10f);
@ -56,10 +59,11 @@ public:
auto consumptionProfile = std::vector<float>();
auto generationProfile = std::vector<float>();
for (int i = 0; i < 5; i++) {
for (int i = 0; i < VALUE_COUNT; i++) {
// Populate with test values
consumptionProfile.push_back(static_cast<float>(i) * 100.0f);
generationProfile.push_back(static_cast<float>(i) * 50.0f);
consumptionProfile.push_back(static_cast<float>(i) * (VALUE_COUNT % 100));
generationProfile.push_back(static_cast<float>(i) * (VALUE_COUNT % 50));
}
metadata->set_consumption_profile(std::move(consumptionProfile));
@ -84,7 +88,6 @@ public:
std::unique_ptr<Community> static create_test_community() {
auto community = std::make_unique<Community>();
community->set_name("Test Community");
std::vector<std::unique_ptr<Building::Base> > buildings;
for (int i = 0; i < 10; i++) {
buildings.push_back(create_test_building());

View File

@ -23,6 +23,8 @@ TEST_CASE("Testing add function") {
}
Surplus surplus(communities);
surplus.CalculateSurplus();
LOG_DEBUG_INFO("Add components");
CostPipeline costPipeline(communities);
costPipeline.addCostComponent(std::make_shared<NetworkProvider>());
costPipeline.addCostComponent(std::make_shared<BillCharge>());