9#ifndef DRYCHEM_CPP_UNITS_TESTS_TESTTYPES_TESTPHYSICALQUANTITY_HPP
10#define DRYCHEM_CPP_UNITS_TESTS_TESTTYPES_TESTPHYSICALQUANTITY_HPP
18#include <gtest/gtest.h>
24GTEST_TEST(testPhysicalQuantity, aPhysicalQuantityKnowsItsDimensionality)
26 using MolarEntropyDimensionality =
Dimensionality<2, 1, -2, 0, -1, -1>;
28 ASSERT_EQ(MolarEntropyDimensionality::Length, MolarEntropy::DimensionalityType::Length);
29 ASSERT_EQ(MolarEntropyDimensionality::Mass, MolarEntropy::DimensionalityType::Mass);
30 ASSERT_EQ(MolarEntropyDimensionality::Time, MolarEntropy::DimensionalityType::Time);
31 ASSERT_EQ(MolarEntropyDimensionality::ElectricCurrent, MolarEntropy::DimensionalityType::ElectricCurrent);
32 ASSERT_EQ(MolarEntropyDimensionality::Temperature, MolarEntropy::DimensionalityType::Temperature);
33 ASSERT_EQ(MolarEntropyDimensionality::AmountOfSubstance, MolarEntropy::DimensionalityType::AmountOfSubstance);
34 ASSERT_EQ(MolarEntropyDimensionality::LuminousIntensity, MolarEntropy::DimensionalityType::LuminousIntensity);
37GTEST_TEST(testPhysicalQuantity, defaultInitializerSetsPhysicalQuantitysMagnitudeToZero)
40 ASSERT_EQ(0.0, defaultInitialized.getMagnitude());
43GTEST_TEST(testPhysicalQuantity, setterFunctionsCanTakeDoubleValuesAsInputParameters)
53GTEST_TEST(testPhysicalQuantity, physicalQuantitiesCanBeConstructedFromStrings)
56 ASSERT_DOUBLE_EQ(1e5, dimensionlessQuantity.getMagnitude());
59 ASSERT_DOUBLE_EQ(1e5, length.getMagnitude());
62GTEST_TEST(testPhysicalQuantity, stringConstructorCanThrowAnException)
64 std::stringstream deathRegex;
65 long double number {};
69 number = std::stold(
"Not a number");
71 catch (
const std::invalid_argument& except)
73 deathRegex <<
"CPP Units Fatal Error:\n Exception message: " << except.what();
87 catch (
const std::exception& except)
91 error.
message =
"Exception message: " + std::string {except.what()};
constexpr long double getMagnitude() const noexcept
Definition physicalQuantity.hpp:50
constexpr void setMagnitude(long double Magnitude) noexcept
Definition physicalQuantity.hpp:51
Definition fatalException.hpp:28
void handleErrorWithMessage() const
Delegate our exception handling to the error handling classes.
Definition fatalException.hpp:49
Definition physicalQuantities.hpp:94
Definition basicMath.hpp:17
PhysicalQuantity< Dimensionality<> > DimensionlessQuantity
Definition physicalQuantities.hpp:22
PhysicalQuantity< Dimensionality< 1, 0, 0 > > Length
Definition physicalQuantities.hpp:37
Definition dimensionality.hpp:27
Definition errorTypes.hpp:32
std::string programName
The name of the program where the exception originated.
Definition errorTypes.hpp:33
std::string message
The main error message describing the error.
Definition errorTypes.hpp:34
GTEST_TEST(testPhysicalQuantity, aPhysicalQuantityKnowsItsDimensionality)
Definition testPhysicalQuantity.hpp:24