diff --git a/Device/Coord/CoordSystem1D.cpp b/Device/Coord/CoordSystem1D.cpp index f14f92ae4edc288fdbcf4e5fb01d174357ecf0b0..2ff35bc9e4f809ebaa7e172731bb9dda97a41b41 100644 --- a/Device/Coord/CoordSystem1D.cpp +++ b/Device/Coord/CoordSystem1D.cpp @@ -18,7 +18,6 @@ #include "Base/Const/Units.h" #include "Base/Math/Constants.h" #include "Base/Util/Assert.h" -#include "Device/Data/Datafield.h" #include <cmath> #include <stdexcept> @@ -71,13 +70,6 @@ CoordSystem1D::CoordSystem1D(const IAxis* axis) { } -//! Returns the size of underlying axis. -size_t CoordSystem1D::axisSize(size_t i_axis) const -{ - ASSERT(i_axis == 0); - return coordinateAxis()->size(); -} - double CoordSystem1D::calculateMin(size_t i_axis, Coords units) const { ASSERT(i_axis == 0); @@ -114,23 +106,6 @@ IAxis* CoordSystem1D::createConvertedAxis(size_t i_axis, Coords units) const return new PointwiseAxis(nameOfAxis(0, units), coords); } -Datafield* CoordSystem1D::createConvertedData(const Datafield& data, Coords units) const -{ - ASSERT(data.rank() == 1); - - auto q_axis = createConvertedAxis(0, units); - Datafield* result = new Datafield({q_axis}); - - if (units != Coords::RQ4) { - result->setVector(data.flatVector()); - return result; - } - - for (size_t i = 0, size = result->size(); i < size; ++i) - (*result)[i] = data[i] * std::pow((*q_axis)[i], 4); - return result; -} - // ************************************************************************************************ // class AngularReflectometryCoords diff --git a/Device/Coord/CoordSystem1D.h b/Device/Coord/CoordSystem1D.h index babdb57af06935330f9b0a74021e4fc941b207cb..92f4a71c1f1e4c5f69f53291fa0999117b2bce26 100644 --- a/Device/Coord/CoordSystem1D.h +++ b/Device/Coord/CoordSystem1D.h @@ -31,11 +31,8 @@ public: CoordSystem1D* clone() const override = 0; - //! Returns dimensionality of converted canvas. - size_t rank() const override { return 1u; } - - //! Returns the size of underlying axis. - size_t axisSize(size_t i_axis) const override; + //! Creates axis in converted units. + IAxis* createConvertedAxis(size_t i_axis, Coords units) const override; //! Calculates minimum on-axis value in given units. double calculateMin(size_t i_axis, Coords units) const override; @@ -43,13 +40,10 @@ public: //! Calculates maximum on-axis value in given units. double calculateMax(size_t i_axis, Coords units) const override; - //! Creates axis in converted units. - IAxis* createConvertedAxis(size_t i_axis, Coords units) const override; - - //! Creates Datafield array in converter units. - Datafield* createConvertedData(const Datafield& data, Coords units) const override; - protected: + //! Returns dimensionality of converted canvas. + size_t rank() const override { return 1u; } + //! Returns translating functional (rads --> output units) virtual std::function<double(double)> getTraslatorTo(Coords units) const = 0; @@ -69,18 +63,18 @@ public: AngularReflectometryCoords* clone() const override; + static std::vector<Coords> availableUnits0(); + static std::string nameOfAxis0(Coords units = Coords::UNDEFINED); + +private: //! Returns the list of all available units std::vector<Coords> availableUnits() const override; - static std::vector<Coords> availableUnits0(); std::string nameOfAxis(size_t i_axis, Coords units = Coords::UNDEFINED) const override; - static std::string nameOfAxis0(Coords units = Coords::UNDEFINED); //! Returns default units to convert to. Coords defaultUnits() const override { return Coords::DEGREES; } - -private: AngularReflectometryCoords(const AngularReflectometryCoords& other); //! Returns translating functional (rads --> desired units) @@ -98,6 +92,7 @@ public: WavenumberReflectometryCoords* clone() const override; +private: //! Returns the list of all available units std::vector<Coords> availableUnits() const override; @@ -106,7 +101,6 @@ public: //! Returns default units to convert to. Coords defaultUnits() const override { return Coords::QSPACE; } -private: WavenumberReflectometryCoords(const WavenumberReflectometryCoords& other); //! Returns translating functional (inv. nm --> desired units) diff --git a/Device/Coord/CoordSystem2D.cpp b/Device/Coord/CoordSystem2D.cpp index 6095c301de1c8d341c047545a28f16a66d71fd46..a4cea536ee628c26d8348712f0c72577b86ecc3c 100644 --- a/Device/Coord/CoordSystem2D.cpp +++ b/Device/Coord/CoordSystem2D.cpp @@ -51,11 +51,6 @@ CoordSystem2D::CoordSystem2D(const CoordSystem2D& other) { } -void CoordSystem2D::addAxisData(std::string name, double min, double max, size_t nbins) -{ - m_axes.emplace_back(new FixedBinAxis(name, min, max, nbins)); -} - double CoordSystem2D::calculateMin(size_t i_axis, Coords units) const { ASSERT(i_axis < rank()); @@ -74,12 +69,6 @@ double CoordSystem2D::calculateMax(size_t i_axis, Coords units) const return calculateValue(i_axis, units, m_axes[i_axis]->max()); } -size_t CoordSystem2D::axisSize(size_t i_axis) const -{ - ASSERT(i_axis < rank()); - return m_axes[i_axis]->size(); -} - std::vector<Coords> CoordSystem2D::availableUnits() const { return {Coords::NBINS, Coords::RADIANS, Coords::DEGREES}; @@ -90,7 +79,7 @@ IAxis* CoordSystem2D::createConvertedAxis(size_t i_axis, Coords units) const const double min = calculateMin(i_axis, units); const double max = calculateMax(i_axis, units); const auto& axis_name = nameOfAxis(i_axis, units); - const auto axis_size = axisSize(i_axis); + const auto axis_size = m_axes[i_axis]->size(); return new FixedBinAxis(axis_name, axis_size, min, max); } diff --git a/Device/Coord/CoordSystem2D.h b/Device/Coord/CoordSystem2D.h index f1304629807f0541abeb64a817fcf63941373935..344a79ba8d5f52abcc3264363138d701e1796ffc 100644 --- a/Device/Coord/CoordSystem2D.h +++ b/Device/Coord/CoordSystem2D.h @@ -31,11 +31,8 @@ public: CoordSystem2D(const std::vector<const IAxis*>& axes); ~CoordSystem2D() override = default; - size_t rank() const override { return m_axes.size(); } - double calculateMin(size_t i_axis, Coords units) const override; double calculateMax(size_t i_axis, Coords units) const override; - size_t axisSize(size_t i_axis) const override; //! Returns list of units that are available for all 2D detectors. //! Further units may be added by child classes. @@ -43,11 +40,11 @@ public: IAxis* createConvertedAxis(size_t i_axis, Coords units) const override; + size_t rank() const override { return m_axes.size(); } + protected: CoordSystem2D(const CoordSystem2D& other); - void addAxisData(std::string name, double min, double max, size_t nbins); - std::vector<const IAxis*> m_axes; private: @@ -65,13 +62,13 @@ public: SphericalCoords* clone() const override; +private: std::vector<Coords> availableUnits() const override; Coords defaultUnits() const override { return Coords::DEGREES; } std::string nameOfAxis(size_t i_axis, Coords units = Coords::UNDEFINED) const override; -private: SphericalCoords(const SphericalCoords& other); //!< used by clone() double calculateValue(size_t i_axis, Coords units, double value) const override; const R3 m_ki; @@ -89,13 +86,13 @@ public: ImageCoords* clone() const override; +private: std::vector<Coords> availableUnits() const override; Coords defaultUnits() const override { return Coords::MM; } std::string nameOfAxis(size_t i_axis, Coords units = Coords::UNDEFINED) const override; -private: ImageCoords(const ImageCoords& other); //!< used by clone() double calculateValue(size_t i_axis, Coords units, double value) const override; @@ -114,11 +111,11 @@ public: OffspecCoords* clone() const override; +private: Coords defaultUnits() const override { return Coords::DEGREES; } std::string nameOfAxis(size_t i_axis, Coords units = Coords::UNDEFINED) const override; -private: OffspecCoords(const OffspecCoords& other); //!< used by clone() double calculateValue(size_t i_axis, Coords units, double value) const override; }; @@ -134,13 +131,13 @@ public: DepthprobeCoords* clone() const override; +private: std::vector<Coords> availableUnits() const override; Coords defaultUnits() const override { return Coords::DEGREES; } std::string nameOfAxis(size_t i_axis, Coords units = Coords::UNDEFINED) const override; -private: DepthprobeCoords(const DepthprobeCoords& other); //!< used by clone() double calculateValue(size_t, Coords units, double value) const override; const double m_ki0; diff --git a/Device/Coord/ICoordSystem.cpp b/Device/Coord/ICoordSystem.cpp index 4605bd544aeff3dacfa58bfe8f109413c63d53f2..b924ab5a07a06d852fccfaec19d5d639007f69a3 100644 --- a/Device/Coord/ICoordSystem.cpp +++ b/Device/Coord/ICoordSystem.cpp @@ -14,7 +14,6 @@ #include "Device/Coord/ICoordSystem.h" #include "Base/Util/Assert.h" -#include "Device/Data/Datafield.h" #include <sstream> ICoordSystem::~ICoordSystem() = default; @@ -32,27 +31,6 @@ std::vector<const IAxis*> ICoordSystem::convertedAxes(Coords units) const return result; } -Datafield* ICoordSystem::createConvertedData(const Datafield& data, Coords units) const -{ - return new Datafield(convertedAxes(units), data.flatVector()); -} - -void ICoordSystem::throwUnitsError(std::string method, std::vector<Coords> available) const -{ - static const std::map<Coords, const char*> axisUnitLabel = { - {Coords::UNDEFINED, "undefined"}, {Coords::NBINS, "bin"}, {Coords::RADIANS, "rad"}, - {Coords::DEGREES, "deg"}, {Coords::MM, "mm"}, {Coords::QSPACE, "1/nm"}, - {Coords::RQ4, "nm^-4?"}}; - - std::stringstream ss; - ss << "Unit type error in " << method - << ": unknown or unsupported unit type. Available units " - "are:\n"; - for (auto unit : available) - ss << axisUnitLabel.at(unit) << "\n"; - throw std::runtime_error(ss.str()); -} - Coords ICoordSystem::substituteDefaultUnits(Coords units) const { return units == Coords::UNDEFINED ? defaultUnits() : units; diff --git a/Device/Coord/ICoordSystem.h b/Device/Coord/ICoordSystem.h index 864eb4e9bc0b7963c76834d8ee686a622d7ee7d0..7e7176dbd9175d4bc1875d3a4a2ad54daabab35f 100644 --- a/Device/Coord/ICoordSystem.h +++ b/Device/Coord/ICoordSystem.h @@ -25,7 +25,6 @@ #include <string> #include <vector> -class Datafield; class IAxis; //! Interface to provide axis translations to different units for simulation output @@ -44,7 +43,6 @@ public: virtual double calculateMin(size_t i_axis, Coords units) const = 0; virtual double calculateMax(size_t i_axis, Coords units) const = 0; - virtual size_t axisSize(size_t i_axis) const = 0; virtual std::string nameOfAxis(size_t i_axis, Coords units = Coords::UNDEFINED) const = 0; @@ -56,12 +54,8 @@ public: std::vector<const IAxis*> defaultAxes() const; std::vector<const IAxis*> convertedAxes(Coords units) const; - //! Creates Datafield array in converter units. - virtual Datafield* createConvertedData(const Datafield& data, Coords units) const; - protected: Coords substituteDefaultUnits(Coords units) const; - [[noreturn]] void throwUnitsError(std::string method, std::vector<Coords> available) const; }; #endif // BORNAGAIN_DEVICE_COORD_ICOORDSYSTEM_H diff --git a/Device/Coord/Tags.h b/Device/Coord/Tags.h index 5feb1274f43be0cc457e4a1e2c6b64906f001904..aed8f783da534df0be576c07d0233731d511b739 100644 --- a/Device/Coord/Tags.h +++ b/Device/Coord/Tags.h @@ -15,7 +15,6 @@ #ifndef BORNAGAIN_DEVICE_COORD_TAGS_H #define BORNAGAIN_DEVICE_COORD_TAGS_H - enum class Coords { UNDEFINED, NBINS, RADIANS, DEGREES, MM, QSPACE, RQ4 }; #endif // BORNAGAIN_DEVICE_COORD_TAGS_H diff --git a/Tests/Unit/Device/DepthprobeConverterTest.cpp b/Tests/Unit/Device/DepthprobeConverterTest.cpp index 76ece559b8da2291deb600a9608e6c46601a5809..8c00d45a378a787d38cc07f9efb2b28cacda8ba4 100644 --- a/Tests/Unit/Device/DepthprobeConverterTest.cpp +++ b/Tests/Unit/Device/DepthprobeConverterTest.cpp @@ -65,7 +65,6 @@ void DepthprobeCoordsTest::checkAlphaAxis(Coords units, const DepthprobeCoords& { std::unique_ptr<IAxis> axis(test_object.createConvertedAxis(0, units)); EXPECT_TRUE(dynamic_cast<const FixedBinAxis*>(axis.get())); - EXPECT_EQ(axis->size(), test_object.axisSize(0)); EXPECT_EQ(axis->size(), m_nbins); EXPECT_EQ(axis->min(), test_object.calculateMin(0, units)); EXPECT_EQ(axis->max(), test_object.calculateMax(0, units)); @@ -75,7 +74,6 @@ void DepthprobeCoordsTest::checkZAxis(Coords units, const DepthprobeCoords& test { std::unique_ptr<IAxis> axis(test_object.createConvertedAxis(1, units)); EXPECT_TRUE(dynamic_cast<const FixedBinAxis*>(axis.get())); - EXPECT_EQ(axis->size(), test_object.axisSize(1)); EXPECT_EQ(axis->size(), m_nbins); EXPECT_EQ(axis->min(), test_object.calculateMin(1, units)); diff --git a/Tests/Unit/Device/OffspecConverterTest.cpp b/Tests/Unit/Device/OffspecConverterTest.cpp index 191de8c35f286bddfac66247ddede830f01bff60..c1c62b977ac4c25df9e51a1c79ef3ed5a185fd81 100644 --- a/Tests/Unit/Device/OffspecConverterTest.cpp +++ b/Tests/Unit/Device/OffspecConverterTest.cpp @@ -68,13 +68,11 @@ TEST_F(OffspecCoordsTest, OffspecCoords) std::unique_ptr<IAxis> axis(coords->createConvertedAxis(0, Coords::UNDEFINED)); EXPECT_TRUE(dynamic_cast<const FixedBinAxis*>(axis.get())); - EXPECT_EQ(axis->size(), coords->axisSize(0)); EXPECT_EQ(axis->min(), coords->calculateMin(0, Coords::UNDEFINED)); EXPECT_EQ(axis->max(), coords->calculateMax(0, Coords::UNDEFINED)); std::unique_ptr<IAxis> axis2(coords->createConvertedAxis(1, Coords::RADIANS)); EXPECT_TRUE(dynamic_cast<const FixedBinAxis*>(axis2.get())); - EXPECT_EQ(axis2->size(), coords->axisSize(1)); EXPECT_EQ(axis2->min(), coords->calculateMin(1, Coords::RADIANS)); EXPECT_EQ(axis2->max(), coords->calculateMax(1, Coords::RADIANS)); diff --git a/Tests/Unit/Device/RectangularConverterTest.cpp b/Tests/Unit/Device/RectangularConverterTest.cpp index a11567da82c7283098d658f26767c3a7e68945da..ca1206b7e91fcaa50fcea8076347ca69d76aef02 100644 --- a/Tests/Unit/Device/RectangularConverterTest.cpp +++ b/Tests/Unit/Device/RectangularConverterTest.cpp @@ -90,13 +90,11 @@ TEST_F(RectangularConverterTest, ImageCoords) std::unique_ptr<IAxis> axis(converter.createConvertedAxis(0, Coords::UNDEFINED)); EXPECT_TRUE(dynamic_cast<const FixedBinAxis*>(axis.get())); - EXPECT_EQ(axis->size(), converter.axisSize(0)); EXPECT_EQ(axis->min(), converter.calculateMin(0, Coords::UNDEFINED)); EXPECT_EQ(axis->max(), converter.calculateMax(0, Coords::UNDEFINED)); std::unique_ptr<IAxis> axis2(converter.createConvertedAxis(1, Coords::QSPACE)); EXPECT_TRUE(dynamic_cast<const FixedBinAxis*>(axis2.get())); - EXPECT_EQ(axis2->size(), converter.axisSize(1)); EXPECT_EQ(axis2->min(), converter.calculateMin(1, Coords::QSPACE)); EXPECT_EQ(axis2->max(), converter.calculateMax(1, Coords::QSPACE)); diff --git a/Tests/Unit/Device/SphericalConverterTest.cpp b/Tests/Unit/Device/SphericalConverterTest.cpp index 94ed5b39170bf271bdc60503399a2057f86560e7..3562f8e164413791006aaa68b543b33c91c002e1 100644 --- a/Tests/Unit/Device/SphericalConverterTest.cpp +++ b/Tests/Unit/Device/SphericalConverterTest.cpp @@ -65,13 +65,11 @@ TEST_F(SphericalConverterTest, SphericalCoords) std::unique_ptr<IAxis> axis(converter.createConvertedAxis(0, Coords::UNDEFINED)); EXPECT_TRUE(dynamic_cast<const FixedBinAxis*>(axis.get())); - EXPECT_EQ(axis->size(), converter.axisSize(0)); EXPECT_EQ(axis->min(), converter.calculateMin(0, Coords::UNDEFINED)); EXPECT_EQ(axis->max(), converter.calculateMax(0, Coords::UNDEFINED)); std::unique_ptr<IAxis> axis2(converter.createConvertedAxis(1, Coords::QSPACE)); EXPECT_TRUE(dynamic_cast<const FixedBinAxis*>(axis2.get())); - EXPECT_EQ(axis2->size(), converter.axisSize(1)); EXPECT_EQ(axis2->min(), converter.calculateMin(1, Coords::QSPACE)); EXPECT_EQ(axis2->max(), converter.calculateMax(1, Coords::QSPACE)); diff --git a/Tests/Unit/Sim/CoordSystem1DTest.cpp b/Tests/Unit/Sim/CoordSystem1DTest.cpp index 41356d5cff0235ef840bcdb29bb89856d707e742..bc5e04853e8d8c188390843b1fca590b610bc415 100644 --- a/Tests/Unit/Sim/CoordSystem1DTest.cpp +++ b/Tests/Unit/Sim/CoordSystem1DTest.cpp @@ -4,7 +4,6 @@ #include "Base/Axis/VariableBinAxis.h" #include "Base/Const/Units.h" #include "Base/Math/Constants.h" -#include "Device/Data/Datafield.h" #include "Sim/Scan/QzScan.h" #include "Tests/GTestWrapper/google_test.h" #include <algorithm> @@ -62,52 +61,27 @@ void CoordSystem1DTest::checkConventionalConverter(const CoordSystem1D& test_obj std::unique_ptr<IAxis> axis_default(test_object.createConvertedAxis(0, Coords::UNDEFINED)); const IAxis* tmp = axis_default.get(); EXPECT_TRUE(dynamic_cast<const PointwiseAxis*>(tmp)); - EXPECT_EQ(axis_default->size(), test_object.axisSize(0)); EXPECT_EQ(axis_default->min(), test_object.calculateMin(0, Coords::UNDEFINED)); EXPECT_EQ(axis_default->max(), test_object.calculateMax(0, Coords::UNDEFINED)); // QSPACE std::unique_ptr<const IAxis> axis_qspace(test_object.createConvertedAxis(0, Coords::QSPACE)); EXPECT_TRUE(dynamic_cast<const PointwiseAxis*>(axis_qspace.get())); - EXPECT_EQ(axis_qspace->size(), test_object.axisSize(0)); EXPECT_EQ(axis_qspace->min(), test_object.calculateMin(0, Coords::QSPACE)); EXPECT_EQ(axis_qspace->max(), test_object.calculateMax(0, Coords::QSPACE)); // NBINS std::unique_ptr<IAxis> axis_nbins(test_object.createConvertedAxis(0, Coords::NBINS)); EXPECT_TRUE(dynamic_cast<const FixedBinAxis*>(axis_nbins.get())); - EXPECT_EQ(axis_nbins->size(), test_object.axisSize(0)); EXPECT_EQ(axis_nbins->min(), test_object.calculateMin(0, Coords::NBINS)); EXPECT_EQ(axis_nbins->max(), test_object.calculateMax(0, Coords::NBINS)); // RQ4 std::unique_ptr<IAxis> axis_rq4(test_object.createConvertedAxis(0, Coords::RQ4)); EXPECT_TRUE(dynamic_cast<const PointwiseAxis*>(axis_rq4.get())); - EXPECT_EQ(axis_rq4->size(), test_object.axisSize(0)); EXPECT_EQ(axis_rq4->min(), test_object.calculateMin(0, Coords::RQ4)); EXPECT_EQ(axis_rq4->max(), test_object.calculateMax(0, Coords::RQ4)); EXPECT_TRUE(*axis_rq4 == *axis_qspace); - - Datafield fake_data({m_axis.clone()}); - std::vector<double> raw_fake(m_axis.size(), 1.0); - fake_data.setVector(raw_fake); - - // NBINS - auto data_nbins = test_object.createConvertedData(fake_data, Coords::NBINS); - EXPECT_EQ(data_nbins->axis(0), *axis_nbins); - EXPECT_EQ(data_nbins->size(), axis_nbins->size()); - EXPECT_EQ(raw_fake, data_nbins->flatVector()); - - // RQ4 - auto data_rq4 = test_object.createConvertedData(fake_data, Coords::RQ4); - EXPECT_EQ(data_rq4->axis(0), *axis_rq4); - auto raw_data_rq4 = data_rq4->flatVector(); - EXPECT_EQ(raw_data_rq4.size(), raw_fake.size()); - EXPECT_EQ(raw_data_rq4.size(), axis_rq4->size()); - for (size_t i = 0, size = raw_data_rq4.size(); i < size; ++i) { - double value = raw_fake[i] * std::pow(axis_rq4->binCenter(i), 4); - EXPECT_DOUBLE_EQ(raw_data_rq4[i], value); - } } void CoordSystem1DTest::checkQSpecConverter(const CoordSystem1D& test_object) @@ -128,14 +102,12 @@ void CoordSystem1DTest::checkQSpecConverter(const CoordSystem1D& test_object) // DEFAULT std::unique_ptr<IAxis> axis_default(test_object.createConvertedAxis(0, Coords::UNDEFINED)); EXPECT_TRUE(dynamic_cast<const PointwiseAxis*>(axis_default.get())); - EXPECT_EQ(axis_default->size(), test_object.axisSize(0)); EXPECT_EQ(axis_default->min(), test_object.calculateMin(0, Coords::UNDEFINED)); EXPECT_EQ(axis_default->max(), test_object.calculateMax(0, Coords::UNDEFINED)); // QSPACE std::unique_ptr<IAxis> axis_qspace(test_object.createConvertedAxis(0, Coords::QSPACE)); EXPECT_TRUE(dynamic_cast<const PointwiseAxis*>(axis_qspace.get())); - EXPECT_EQ(axis_qspace->size(), test_object.axisSize(0)); EXPECT_EQ(axis_qspace->min(), test_object.calculateMin(0, Coords::QSPACE)); EXPECT_EQ(axis_qspace->max(), test_object.calculateMax(0, Coords::QSPACE)); EXPECT_EQ(*axis_default, *axis_qspace); @@ -143,38 +115,15 @@ void CoordSystem1DTest::checkQSpecConverter(const CoordSystem1D& test_object) // NBINS std::unique_ptr<IAxis> axis_nbins(test_object.createConvertedAxis(0, Coords::NBINS)); EXPECT_TRUE(dynamic_cast<const FixedBinAxis*>(axis_nbins.get())); - EXPECT_EQ(axis_nbins->size(), test_object.axisSize(0)); EXPECT_EQ(axis_nbins->min(), test_object.calculateMin(0, Coords::NBINS)); EXPECT_EQ(axis_nbins->max(), test_object.calculateMax(0, Coords::NBINS)); // RQ4 std::unique_ptr<IAxis> axis_rq4(test_object.createConvertedAxis(0, Coords::RQ4)); EXPECT_TRUE(dynamic_cast<const PointwiseAxis*>(axis_rq4.get())); - EXPECT_EQ(axis_rq4->size(), test_object.axisSize(0)); EXPECT_EQ(axis_rq4->min(), test_object.calculateMin(0, Coords::RQ4)); EXPECT_EQ(axis_rq4->max(), test_object.calculateMax(0, Coords::RQ4)); EXPECT_TRUE(*axis_rq4 == *axis_qspace); - - Datafield fake_data({m_axis.clone()}); - std::vector<double> raw_fake(m_axis.size(), 1.0); - fake_data.setVector(raw_fake); - - // NBINS - auto data_nbins = test_object.createConvertedData(fake_data, Coords::NBINS); - EXPECT_EQ(data_nbins->axis(0), *axis_nbins); - EXPECT_EQ(data_nbins->size(), axis_nbins->size()); - EXPECT_EQ(raw_fake, data_nbins->flatVector()); - - // RQ4 - auto data_rq4 = test_object.createConvertedData(fake_data, Coords::RQ4); - EXPECT_EQ(data_rq4->axis(0), *axis_rq4); - auto raw_data_rq4 = data_rq4->flatVector(); - EXPECT_EQ(raw_data_rq4.size(), raw_fake.size()); - EXPECT_EQ(raw_data_rq4.size(), axis_rq4->size()); - for (size_t i = 0, size = raw_data_rq4.size(); i < size; ++i) { - double value = raw_fake[i] * std::pow(axis_rq4->binCenter(i), 4); - EXPECT_DOUBLE_EQ(raw_data_rq4[i], value); - } } TEST_F(CoordSystem1DTest, MainFunctionality)