From c6af7019dc9f7410015aa40adfe54835e3c856f4 Mon Sep 17 00:00:00 2001 From: stani Date: Mon, 10 Mar 2025 21:21:50 +0100 Subject: [PATCH] formatting --- src/helper/Curry.h | 7 +- src/interfaces/ICostComponent.h | 2 +- src/model/Building.cpp | 114 ++++++++++++------- src/model/Building.h | 171 +++++++++++++++-------------- src/model/Community.cpp | 38 ++++--- src/model/Energy_Tariff.h | 6 +- src/model/Model.h | 6 +- src/services/Cost/CostPipeline.cpp | 2 +- src/services/Cost/CostPipeline.h | 12 +- src/services/Cost/TaxComponent.cpp | 1 - src/services/Cost/TaxComponent.h | 12 +- src/services/Surplus.cpp | 22 ++-- src/services/Surplus.h | 9 +- tests/model/Factory.h | 40 ++++--- tests/services/test_Surplus.cpp | 5 +- 15 files changed, 266 insertions(+), 181 deletions(-) diff --git a/src/helper/Curry.h b/src/helper/Curry.h index 97c511d..e55913a 100644 --- a/src/helper/Curry.h +++ b/src/helper/Curry.h @@ -4,9 +4,12 @@ #ifndef CURRY_H #define CURRY_H + template -auto curry(Func1 f1, Func2 f2) { - return [=](auto... args) { +auto curry(Func1 f1, Func2 f2) +{ + return [=](auto... args) + { auto result1 = f1(args...); return f2(result1); }; diff --git a/src/interfaces/ICostComponent.h b/src/interfaces/ICostComponent.h index 5ee9471..4c91b51 100644 --- a/src/interfaces/ICostComponent.h +++ b/src/interfaces/ICostComponent.h @@ -8,7 +8,7 @@ class ICostComponent { - public: +public: virtual ~ICostComponent() = default; virtual double apply(std::vector>& communities) const = 0; }; diff --git a/src/model/Building.cpp b/src/model/Building.cpp index 0ef17f5..a68ffdf 100644 --- a/src/model/Building.cpp +++ b/src/model/Building.cpp @@ -4,148 +4,184 @@ #include "Building.h" -float Building::Cost::special_rate_consumption() const { +float Building::Cost::special_rate_consumption() const +{ return SpecialRateConsumption; } -void Building::Cost::set_special_rate_consumption(float special_rate_consumption) { +void Building::Cost::set_special_rate_consumption(float special_rate_consumption) +{ SpecialRateConsumption = special_rate_consumption; } -float Building::Cost::special_rate_generation() const { +float Building::Cost::special_rate_generation() const +{ return SpecialRateGeneration; } -void Building::Cost::set_special_rate_generation(float special_rate_generation) { +void Building::Cost::set_special_rate_generation(float special_rate_generation) +{ SpecialRateGeneration = special_rate_generation; } -std::vector>& Building::Simulation_Values::community_coverage() { +std::vector>& Building::Simulation_Values::community_coverage() +{ return CommunityCoverage; } void Building::Simulation_Values:: -set_community_coverage(std::vector> community_coverage) { +set_community_coverage(std::vector> community_coverage) +{ CommunityCoverage = std::move(community_coverage); } -std::vector>& Building::Simulation_Values::own_usage() { +std::vector>& Building::Simulation_Values::own_usage() +{ return OwnUsage; } -void Building::Simulation_Values::set_own_usage(std::vector> own_usage) { - OwnUsage = std::move(own_usage) ; +void Building::Simulation_Values::set_own_usage(std::vector> own_usage) +{ + OwnUsage = std::move(own_usage); } -std::vector>& Building::Simulation_Values::needed_con() { +std::vector>& Building::Simulation_Values::needed_con() +{ return Needed_con; } -void Building::Simulation_Values::set_needed_con(std::vector> needed_con) { - Needed_con = std::move(needed_con) ; +void Building::Simulation_Values::set_needed_con(std::vector> needed_con) +{ + Needed_con = std::move(needed_con); } -std::vector>& Building::Simulation_Values::needed_gen() { +std::vector>& Building::Simulation_Values::needed_gen() +{ return NeededGen; } -void Building::Simulation_Values::set_needed_gen(std::vector> needed_gen) { +void Building::Simulation_Values::set_needed_gen(std::vector> needed_gen) +{ NeededGen = std::move(needed_gen); } -std::string Building::Metadata::name() const { +std::string Building::Metadata::name() const +{ return Name; } -void Building::Metadata::set_name(const std::string &name) { - Name = name; +void Building::Metadata::set_name(const std::string& name) +{ + Name = name; } -float Building::Metadata::annual_consumption() const { +float Building::Metadata::annual_consumption() const +{ return AnnualConsumption; } -void Building::Metadata::set_annual_consumption(float annual_consumption) { +void Building::Metadata::set_annual_consumption(float annual_consumption) +{ AnnualConsumption = annual_consumption; } -float Building::Metadata::annual_generation() const { +float Building::Metadata::annual_generation() const +{ return AnnualGeneration; } -void Building::Metadata::set_annual_generation(float annual_generation) { +void Building::Metadata::set_annual_generation(float annual_generation) +{ AnnualGeneration = annual_generation; } -std::vector>& Building::Metadata::consumption_profile() { +std::vector>& Building::Metadata::consumption_profile() +{ return ConsumptionProfile; } -void Building::Metadata::set_consumption_profile(std::vector> consumption_profile) { +void Building::Metadata::set_consumption_profile(std::vector> consumption_profile) +{ ConsumptionProfile = std::move(consumption_profile); } -std::vector>& Building::Metadata::generation_profile() { +std::vector>& Building::Metadata::generation_profile() +{ return GenerationProfile; } -void Building::Metadata::set_generation_profile(std::vector> generation_profile) { +void Building::Metadata::set_generation_profile(std::vector> generation_profile) +{ GenerationProfile = std::move(generation_profile); } -std::string Building::Metadata::consumption_profile_name() const { +std::string Building::Metadata::consumption_profile_name() const +{ return ConsumptionProfileName; } -void Building::Metadata::set_consumption_profile_name(const std::string &consumption_profile_name) { +void Building::Metadata::set_consumption_profile_name(const std::string& consumption_profile_name) +{ ConsumptionProfileName = consumption_profile_name; } -std::string Building::Metadata::generation_profile_name() const { +std::string Building::Metadata::generation_profile_name() const +{ return GenerationProfileName; } -void Building::Metadata::set_generation_profile_name(const std::string &generation_profile_name) { +void Building::Metadata::set_generation_profile_name(const std::string& generation_profile_name) +{ GenerationProfileName = generation_profile_name; } -short Building::Metadata::connection_power() const { +short Building::Metadata::connection_power() const +{ return ConnectionPower; } -void Building::Metadata::set_connection_power(short connection_power) { +void Building::Metadata::set_connection_power(short connection_power) +{ ConnectionPower = connection_power; } -short Building::Metadata::grid_power() const { +short Building::Metadata::grid_power() const +{ return GridPower; } -void Building::Metadata::set_grid_power(short grid_power) { +void Building::Metadata::set_grid_power(short grid_power) +{ GridPower = grid_power; } -std::unique_ptr& Building::Base::cost() { +std::unique_ptr& Building::Base::cost() +{ return Cost; } -void Building::Base::set_cost(std::unique_ptr cost) { +void Building::Base::set_cost(std::unique_ptr cost) +{ Cost = std::move(cost); } -std::unique_ptr& Building::Base::values() { +std::unique_ptr& Building::Base::values() +{ return Values; } -void Building::Base::set_values(std::unique_ptr values) { +void Building::Base::set_values(std::unique_ptr values) +{ Values = std::move(values); } -std::unique_ptr& Building::Base::metadata() { +std::unique_ptr& Building::Base::metadata() +{ return Metadata; } -void Building::Base::set_metadata(std::unique_ptr metadata) { +void Building::Base::set_metadata(std::unique_ptr metadata) +{ Metadata = std::move(metadata); } diff --git a/src/model/Building.h b/src/model/Building.h index ba4f6b6..ad8cf29 100644 --- a/src/model/Building.h +++ b/src/model/Building.h @@ -1,91 +1,100 @@ - // - // Created by Stani on 09/03/2025. - // +// +// Created by Stani on 09/03/2025. +// - #ifndef BUILDING_H - #define BUILDING_H +#ifndef BUILDING_H +#define BUILDING_H #include - #include - #include +#include +#include #include "Model.h" - namespace Building { - class Cost { - private: - float SpecialRateConsumption; - float SpecialRateGeneration; - public: +namespace Building +{ + class Cost + { + private: + float SpecialRateConsumption; + float SpecialRateGeneration; - float special_rate_consumption() const; - void set_special_rate_consumption(float special_rate_consumption); - float special_rate_generation() const; - void set_special_rate_generation(float special_rate_generation); - }; - class Simulation_Values { - private: - std::vector> CommunityCoverage; - std::vector> OwnUsage; - std::vector> Needed_con; - std::vector> NeededGen; - public: - std::vector>& community_coverage(); - void set_community_coverage(std::vector> community_coverage); - std::vector>& own_usage(); - void set_own_usage(std::vector> own_usage); - std::vector>& needed_con(); - void set_needed_con(std::vector> needed_con); - std::vector>& needed_gen(); - void set_needed_gen(std::vector> needed_gen); - }; - class Metadata { - private: - std::string Name; - float AnnualConsumption; - float AnnualGeneration; - std::vector> ConsumptionProfile; - std::vector> GenerationProfile; - std::string ConsumptionProfileName; - std::string GenerationProfileName; - short ConnectionPower; - short GridPower; - public: - std::string name() const; - void set_name(const std::string &name); - float annual_consumption() const; - void set_annual_consumption(float annual_consumption); - float annual_generation() const; - void set_annual_generation(float annual_generation); - std::vector>& consumption_profile(); - void set_consumption_profile(std::vector> consumption_profile); - std::vector>& generation_profile(); - void set_generation_profile(std::vector> generation_profile); - std::string consumption_profile_name() const; - void set_consumption_profile_name(const std::string &consumption_profile_name); - std::string generation_profile_name() const; - void set_generation_profile_name(const std::string &generation_profile_name); - short connection_power() const; - void set_connection_power(short connection_power); - short grid_power() const; - void set_grid_power(short grid_power); - }; + public: + float special_rate_consumption() const; + void set_special_rate_consumption(float special_rate_consumption); + float special_rate_generation() const; + void set_special_rate_generation(float special_rate_generation); + }; - class Base : public Model - { - private: - std::unique_ptr Cost; - std::unique_ptr Values; - std::unique_ptr Metadata; - public: - std::unique_ptr& cost(); - void set_cost(std::unique_ptr cost); - std::unique_ptr & values(); - void set_values(std::unique_ptr values); - std::unique_ptr & metadata(); - void set_metadata(std::unique_ptr metadata); - }; - } + class Simulation_Values + { + private: + std::vector> CommunityCoverage; + std::vector> OwnUsage; + std::vector> Needed_con; + std::vector> NeededGen; + + public: + std::vector>& community_coverage(); + void set_community_coverage(std::vector> community_coverage); + std::vector>& own_usage(); + void set_own_usage(std::vector> own_usage); + std::vector>& needed_con(); + void set_needed_con(std::vector> needed_con); + std::vector>& needed_gen(); + void set_needed_gen(std::vector> needed_gen); + }; + + class Metadata + { + private: + std::string Name; + float AnnualConsumption; + float AnnualGeneration; + std::vector> ConsumptionProfile; + std::vector> GenerationProfile; + std::string ConsumptionProfileName; + std::string GenerationProfileName; + short ConnectionPower; + short GridPower; + + public: + std::string name() const; + void set_name(const std::string& name); + float annual_consumption() const; + void set_annual_consumption(float annual_consumption); + float annual_generation() const; + void set_annual_generation(float annual_generation); + std::vector>& consumption_profile(); + void set_consumption_profile(std::vector> consumption_profile); + std::vector>& generation_profile(); + void set_generation_profile(std::vector> generation_profile); + std::string consumption_profile_name() const; + void set_consumption_profile_name(const std::string& consumption_profile_name); + std::string generation_profile_name() const; + void set_generation_profile_name(const std::string& generation_profile_name); + short connection_power() const; + void set_connection_power(short connection_power); + short grid_power() const; + void set_grid_power(short grid_power); + }; + + class Base : public Model + { + private: + std::unique_ptr Cost; + std::unique_ptr Values; + std::unique_ptr Metadata; + + public: + std::unique_ptr& cost(); + void set_cost(std::unique_ptr cost); + std::unique_ptr& values(); + void set_values(std::unique_ptr values); + std::unique_ptr& metadata(); + void set_metadata(std::unique_ptr metadata); + }; +} - #endif //BUILDING_H +#endif //BUILDING_H diff --git a/src/model/Community.cpp b/src/model/Community.cpp index c2917cd..bd07eeb 100644 --- a/src/model/Community.cpp +++ b/src/model/Community.cpp @@ -2,42 +2,52 @@ #include "../helper/Curry.h" -std::string Community::name() const { +std::string Community::name() const +{ return Name; } -void Community::set_name(const std::string& name) { +void Community::set_name(const std::string& name) +{ Name = name; } -std::vector>& Community::buildings() { +std::vector>& Community::buildings() +{ return Buildings; } // Use move semantics for efficiency -void Community::set_buildings(std::vector> buildings) { +void Community::set_buildings(std::vector> buildings) +{ Buildings = std::move(buildings); } -Energy_Tariff Community::energy_tariff() const { +Energy_Tariff Community::energy_tariff() const +{ return energy_Tariff; } -void Community::set_energy_tariff(const Energy_Tariff& energy_tariff) { +void Community::set_energy_tariff(const Energy_Tariff& energy_tariff) +{ energy_Tariff = energy_tariff; } -auto Community::iterateBuildings(std::vector>& Communities) -> std::function&)>(const std::function&)> +auto Community::iterateBuildings( + std::vector>& Communities) -> std::function&)>(const std::function&)> { - return [&](const std::function& func1) { - return [&, func1](const std::function& func2) { - // First apply func1 to each Community + return [&](const std::function& func1) + { + return [&, func1](const std::function& func2) + { iterateVector(Communities, func1); - // Second apply func2 to each building inside each Community - iterateVector(Communities, [&](Community& community) { - for (auto& building : community.buildings()) { - func2(*building); // Apply func2 to each Building::Base + iterateVector(Communities, [&](Community& community) + { + for (auto& building : community.buildings()) + { + func2(*building); } }); }; diff --git a/src/model/Energy_Tariff.h b/src/model/Energy_Tariff.h index 2f2056f..6a7af09 100644 --- a/src/model/Energy_Tariff.h +++ b/src/model/Energy_Tariff.h @@ -6,11 +6,9 @@ #define ENERGY_TARIFF_H - -class Energy_Tariff { - +class Energy_Tariff +{ }; - #endif //ENERGY_TARIFF_H diff --git a/src/model/Model.h b/src/model/Model.h index fbc8b18..8687f54 100644 --- a/src/model/Model.h +++ b/src/model/Model.h @@ -6,12 +6,14 @@ #include template -class Model { +class Model +{ public: static void iterateVector(std::vector>& vector, const std::function& function) { - for (auto& item : vector) { + for (auto& item : vector) + { function(*item); } } diff --git a/src/services/Cost/CostPipeline.cpp b/src/services/Cost/CostPipeline.cpp index b20f0f9..97b1b0f 100644 --- a/src/services/Cost/CostPipeline.cpp +++ b/src/services/Cost/CostPipeline.cpp @@ -11,7 +11,7 @@ void CostPipeline::addCostComponent(const std::shared_ptr& compo void CostPipeline::calculateFinalCost() { - for (auto& component: this->components) + for (auto& component : this->components) { component->apply(this->communities); } diff --git a/src/services/Cost/CostPipeline.h b/src/services/Cost/CostPipeline.h index ee165aa..77a0f5d 100644 --- a/src/services/Cost/CostPipeline.h +++ b/src/services/Cost/CostPipeline.h @@ -9,15 +9,19 @@ #include "../../interfaces/ICostComponent.h" #include "../../model/Community.h" -class CostPipeline { +class CostPipeline +{ std::vector>& communities; std::vector> components; - public: - CostPipeline(std::vector>& communities) : communities(communities){} + +public: + CostPipeline(std::vector>& communities) : communities(communities) + { + } + void addCostComponent(const std::shared_ptr& components); void calculateFinalCost(); }; - #endif //COSTPIPELINE_H diff --git a/src/services/Cost/TaxComponent.cpp b/src/services/Cost/TaxComponent.cpp index 1e25228..46b9c3f 100644 --- a/src/services/Cost/TaxComponent.cpp +++ b/src/services/Cost/TaxComponent.cpp @@ -10,7 +10,6 @@ void TaxComponent::applyCost(std::vector>& communitie { Building::Base::iterateVector(community.buildings(), [&](Building::Base& building) { - }); }); } diff --git a/src/services/Cost/TaxComponent.h b/src/services/Cost/TaxComponent.h index e06e848..55cb620 100644 --- a/src/services/Cost/TaxComponent.h +++ b/src/services/Cost/TaxComponent.h @@ -7,13 +7,17 @@ #include "../../interfaces/ICostComponent.h" -class TaxComponent : public ICostComponent{ +class TaxComponent : public ICostComponent +{ double taxRate; - public: - TaxComponent(double rate) : taxRate(rate){} + +public: + TaxComponent(double rate) : taxRate(rate) + { + } + void applyCost(std::vector>& communities); }; - #endif //TAXCOMPONENT_H diff --git a/src/services/Surplus.cpp b/src/services/Surplus.cpp index bce25e4..d08bf0a 100644 --- a/src/services/Surplus.cpp +++ b/src/services/Surplus.cpp @@ -11,22 +11,25 @@ #include -void Surplus::CalculateSurplus(std::vector>& communities) { +void Surplus::CalculateSurplus(std::vector>& communities) +{ std::vector consumptionAvailable(VALUE_COUNT, 0.0); std::vector generationAvailable(VALUE_COUNT, 0.0); auto iterateFunc = Community::iterateBuildings(communities); - auto modifyCommunity = [](Community& c) { + auto modifyCommunity = [](Community& c) + { std::cout << "Processing Community\n"; }; - auto modifyBuilding = [](Building::Base& building) { + auto modifyBuilding = [](Building::Base& building) + { std::cout << "Processing Building\n"; CalculateBuildingSurplus(building); }; - auto nestedFunc = iterateFunc(modifyCommunity); - nestedFunc(modifyBuilding); + iterateFunc(modifyCommunity)(modifyBuilding); } -void Surplus::CalculateBuildingSurplus(Building::Base& building) { +void Surplus::CalculateBuildingSurplus(Building::Base& building) +{ std::vector ownCoverage(VALUE_COUNT, 0.0f); std::vector neededConsumption(VALUE_COUNT, 0.0f); std::vector neededGeneration(VALUE_COUNT, 0.0f); @@ -37,10 +40,11 @@ void Surplus::CalculateBuildingSurplus(Building::Base& building) { std::transform(consumption.begin(), consumption.end(), generation.begin(), ownCoverage.begin(), - [&](const std::unique_ptr& c, const std::unique_ptr& g) { + [&](const std::unique_ptr& c, const std::unique_ptr& g) + { ownCoverage.push_back((c ? *c : 0.0f) - (g ? *g : 0.0f)); - neededConsumption.push_back((c && *c> 0.0f?*c:0.0f)); - neededGeneration.push_back((g && *g<0.0f?-*g:0.0f)); + neededConsumption.push_back((c && *c > 0.0f ? *c : 0.0f)); + neededGeneration.push_back((g && *g < 0.0f ? -*g : 0.0f)); ownUsage.push_back((c ? *c : 0.0f) - (neededConsumption.back())); return 0.0f; }); diff --git a/src/services/Surplus.h b/src/services/Surplus.h index c62acf5..d217533 100644 --- a/src/services/Surplus.h +++ b/src/services/Surplus.h @@ -12,11 +12,15 @@ class Community; -class Surplus { +class Surplus +{ private: std::vector>& communities; + public: - Surplus(std::vector>& communities) : communities(communities) {} + Surplus(std::vector>& communities) : communities(communities) + { + } void static CalculateSurplus(std::vector>& communities); @@ -24,5 +28,4 @@ public: }; - #endif //SURPLUS_H diff --git a/tests/model/Factory.h b/tests/model/Factory.h index 42c32da..b36788c 100644 --- a/tests/model/Factory.h +++ b/tests/model/Factory.h @@ -14,16 +14,19 @@ namespace Building class Cost; } -class Factory { - public: - std::unique_ptr static create_test_cost() { +class Factory +{ +public: + std::unique_ptr static create_test_cost() + { auto cost = std::make_unique(); cost->set_special_rate_consumption(0.15f); cost->set_special_rate_generation(0.10f); return cost; } - std::unique_ptr static create_test_simulation_values() { + std::unique_ptr static create_test_simulation_values() + { auto values = std::make_unique(); auto communityCoverage = std::vector>(); @@ -31,7 +34,9 @@ class Factory { auto neededCon = std::vector>(); auto neededGen = std::vector>(); - for (int i = 0; i < 5; i++) { // Populate with test values + for (int i = 0; i < 5; i++) + { + // Populate with test values communityCoverage.push_back(std::make_unique(i * 10.0f)); ownUsage.push_back(std::make_unique(i * 5.0f)); neededCon.push_back(std::make_unique(i * 3.0f)); @@ -46,7 +51,8 @@ class Factory { return values; } - std::unique_ptr static create_test_metadata() { + std::unique_ptr static create_test_metadata() + { auto metadata = std::make_unique(); metadata->set_name("Test Building"); metadata->set_annual_consumption(12000.0f); @@ -59,7 +65,9 @@ class Factory { auto consumptionProfile = std::vector>(); auto generationProfile = std::vector>(); - for (int i = 0; i < 5; i++) { // Populate with test values + for (int i = 0; i < 5; i++) + { + // Populate with test values consumptionProfile.push_back(std::make_unique(i * 100.0f)); generationProfile.push_back(std::make_unique(i * 50.0f)); } @@ -70,24 +78,30 @@ class Factory { return metadata; } - std::unique_ptr static create_test_building() { + std::unique_ptr static create_test_building() + { auto building = std::make_unique(); - building->set_cost( create_test_cost()); + building->set_cost(create_test_cost()); building->set_values(create_test_simulation_values()); building->set_metadata(create_test_metadata()); return building; } - Energy_Tariff static create_test_energy_tariff() { + + Energy_Tariff static create_test_energy_tariff() + { return {}; } - std::unique_ptr static create_test_community() { + + std::unique_ptr static create_test_community() + { auto community = std::make_unique(); community->set_name("Test Community"); std::vector> buildings; - for (int i = 0; i < 3; i++) { + for (int i = 0; i < 3; i++) + { buildings.push_back(create_test_building()); } @@ -96,9 +110,7 @@ class Factory { return community; } - }; - #endif //FACTORY_H diff --git a/tests/services/test_Surplus.cpp b/tests/services/test_Surplus.cpp index 400a84a..8a0046b 100644 --- a/tests/services/test_Surplus.cpp +++ b/tests/services/test_Surplus.cpp @@ -6,9 +6,10 @@ #include "doctest/doctest.h" #include "../model/Factory.h" -TEST_CASE("Testing add function") { +TEST_CASE("Testing add function") +{ std::vector> communities; communities.push_back(Factory::create_test_community()); Surplus::CalculateSurplus(communities); CHECK(true); -} \ No newline at end of file +}