9#ifndef DRYCHEM_CPP_UNITS_TESTS_TESTMATHFUNCTIONS_TESTADVANCEDMATHFUNCTIONS_HPP
10#define DRYCHEM_CPP_UNITS_TESTS_TESTMATHFUNCTIONS_TESTADVANCEDMATHFUNCTIONS_HPP
16#include <gtest/gtest.h>
23GTEST_TEST(testBasicMathFunctions, weCanTakeTheAverageOfContainersOfPhysicalQuantities)
25 std::vector<Length> x {1.0_m, 2.0_m, 3.0_m, 4.0_m, 5.0_m, 6.0_m, 7.0_m, 8.0_m, 9.0_m, 10.0_m};
26 std::array<Acceleration, 6> y {1.0_m_s2, 2.0_m_s2, 3.0_m_s2, 4.0_m_s2, 5.0_m_s2, 6.0_m_s2};
32GTEST_TEST(testBasicMathFunctions, weCanTakeTheVarianceOfContainersOfPhysicalQuantities)
34 std::vector<Length> x {1.0_m, 2.0_m, 3.0_m, 4.0_m, 5.0_m, 6.0_m, 7.0_m, 8.0_m, 9.0_m, 10.0_m};
35 std::array<Acceleration, 6> y {1.0_m_s2, 2.0_m_s2, 3.0_m_s2, 4.0_m_s2, 5.0_m_s2, 6.0_m_s2};
44GTEST_TEST(testBasicMathFunctions, weCanFitALineThroughAContainerOfPhysicalQuantities)
46 std::vector<Length> x {1.0_m, 2.0_m, 3.0_m, 4.0_m, 5.0_m, 6.0_m, 7.0_m, 8.0_m, 9.0_m, 10.0_m};
47 std::vector<Concentration> y {2.0_M, 5.0_M, 3.0_M, 7.0_M, 8.0_M, 9.0_M, 12.0_M, 10.0_M, 15.0_M, 20.0_M};
56GTEST_TEST(testBasicMathFunctions, weCanApproximateTheDerivativeOfAContainerOfPhysicalQuantities)
58 std::vector<Length> length {1.0_m, 2.0_m, 3.0_m, 4.0_m, 5.0_m};
59 std::vector<Concentration> concentration {1.0_M, 2.0_M, 3.0_M, 4.0_M, 5.0_M};
60 std::vector<ConcentrationGradient> expectedResults {1.0_M_m, 1.0_M_m, 1.0_M_m, 1.0_M_m, 1.0_M_m};
65 ASSERT_EQ(expectedResults, actualResults);
68GTEST_TEST(testBasicMathFunctions, weCanApproximateTheIntegralOfAContainerOfPhysicalQuantities)
70 std::vector<Length> length {1.0_m, 2.0_m, 3.0_m, 4.0_m, 5.0_m};
71 std::vector<ElectricField> eField {1.0_V_m, 2.0_V_m, 3.0_V_m, 4.0_V_m, 5.0_V_m};
72 std::vector<ElectricPotential> expectedResults {0.0_V, 1.5_V, 4.0_V, 7.5_V, 12.0_V};
77 ASSERT_EQ(expectedResults, actualResults);
Definition physicalQuantities.hpp:94
constexpr auto sqrt(const PhysicalQuantity< Dimensionality< L, M, T, I, Th, N, J > > &physicalQuantity) noexcept
Definition basicMath.hpp:85
Definition basicMath.hpp:17
constexpr T calculateAverage(Iterator x_begin, Iterator x_end)
Definition statistics.hpp:62
constexpr auto centeredDifferenceMethod(IteratorX x_begin, IteratorX x_end, IteratorY y_begin, IteratorY y_end, bool correctBoundaries=true)
Definition centeredDifferenceMethod.hpp:50
constexpr long double findAbsoluteError(T expectedValue, std::size_t significantFigures) noexcept
Definition statistics.hpp:45
constexpr decltype(auto) calculateVariance(Iterator x_begin, Iterator x_end)
Definition statistics.hpp:84
constexpr auto cumulativeTrapzIntegration(IteratorX x_begin, IteratorX x_end, IteratorY y_begin, IteratorY y_end, std::optional< decltype(*x_begin **y_begin)> initialValue=std::nullopt)
Definition integration.hpp:69
constexpr decltype(auto) linearLeastSquaresFitting(IteratorX x_begin, IteratorX x_end, IteratorY y_begin, IteratorY y_end)
Definition linearLeastSquaresFitting.hpp:71
GTEST_TEST(testBasicMathFunctions, weCanTakeTheAverageOfContainersOfPhysicalQuantities)
Definition testAdvancedMathFunctions.hpp:23