feat(const): added << operator to constant so that constants
also added tests for the stream operator
This commit is contained in:
@@ -82,7 +82,7 @@ bool constants::load(const std::string& filename) {
|
||||
int start = 0;
|
||||
|
||||
std::string symbol = trim(line.substr(start, col_widths_[0])); start += col_widths_[0];
|
||||
std::string name = line.substr(start, col_widths_[1]); start += col_widths_[1];
|
||||
std::string name = trim(line.substr(start, col_widths_[1])); start += col_widths_[1];
|
||||
std::string valueStr = line.substr(start, col_widths_[2]); start += col_widths_[2];
|
||||
std::string unit = trim(line.substr(start, col_widths_[3])); start += col_widths_[3]; // Only trim the unit
|
||||
std::string uncertaintyStr = line.substr(start, col_widths_[4]); start += col_widths_[4];
|
||||
|
||||
@@ -16,6 +16,16 @@ struct constant {
|
||||
double uncertainty; ///< Uncertainty in the constant's value
|
||||
std::string unit; ///< Unit of the constant
|
||||
std::string reference; ///< Reference for the constant's value
|
||||
|
||||
/**
|
||||
* @brief overload the << operator for pretty printing
|
||||
*/
|
||||
friend std::ostream& operator<<(std::ostream& os, const constant& c) {
|
||||
os << "<" << c.name << ": ";
|
||||
os << c.value << "±" << c.uncertainty << " ";
|
||||
os << c.unit << " (" << c.reference << ")>\n";
|
||||
return os;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include <set>
|
||||
#include <sstream>
|
||||
|
||||
std::string RELATIVE_PATH = "../src/resources/const/const.dat";
|
||||
/**
|
||||
@@ -22,7 +23,6 @@ protected:
|
||||
void SetUp() override {
|
||||
// Create a DObject with initial data and metadata
|
||||
constants initializedConstants(RELATIVE_PATH);
|
||||
std::cout << "speed of light (tests) " << initializedConstants["c"].value << std::endl;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -88,7 +88,6 @@ TEST_F(constTest, Keys) {
|
||||
|
||||
for (const auto& key : checkKeys) {
|
||||
bool found = keys.find(key) != keys.end();
|
||||
std::cout << "FOUND SIMILAR KEY " << key << ", found: " << found << std::endl;
|
||||
EXPECT_TRUE(found);
|
||||
}
|
||||
|
||||
@@ -101,7 +100,16 @@ TEST_F(constTest, Keys) {
|
||||
|
||||
for (const auto& key : checkBadKeys) {
|
||||
bool found = keys.find(key) != keys.end();
|
||||
std::cout << "FOUND BAD KEY " << key << ", found: " << found << std::endl;
|
||||
EXPECT_FALSE(found);
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(constTest, Output) {
|
||||
constants obj(RELATIVE_PATH);
|
||||
std::ostringstream os;
|
||||
|
||||
os << obj.get("c");
|
||||
std::string expected = "<speed of light in vacuum: 2.99792e+10±0 cm / s (CODATA2022)>\n";
|
||||
|
||||
EXPECT_EQ(os.str(), expected);
|
||||
}
|
||||
Reference in New Issue
Block a user