Skip to content
Snippets Groups Projects
Commit 59eacb2e authored by Pospelov, Gennady's avatar Pospelov, Gennady
Browse files

OffSpecularResonator example now runs as a PyStandard functional tests

parent 6ac48f0b
No related branches found
No related tags found
No related merge requests found
......@@ -161,6 +161,13 @@ std::string printValue(double value, const std::string& units)
+ "'");
}
std::string printString(const std::string& value)
{
std::ostringstream result;
result << "\"" << value << "\"";
return result.str();
}
bool isSquare(double length1, double length2, double angle)
{
return length1 == length2 && Numeric::areAlmostEqual(angle, M_PI_2);
......@@ -285,6 +292,7 @@ std::string printAxis(const IAxis& axis, const std::string& units)
if (auto fixedAxis = dynamic_cast<const FixedBinAxis*>(&axis)) {
result << "ba.FixedBinAxis("
<< printString(fixedAxis->getName()) << ", "
<< fixedAxis->size() << ", "
<< printValue(fixedAxis->getMin(), units) << ", "
<< printValue(fixedAxis->getMax(), units) << ")";
......@@ -293,7 +301,7 @@ std::string printAxis(const IAxis& axis, const std::string& units)
throw std::runtime_error("PythonFormatting::printAxis() -> Error. Unsupported axis");
}
return result.str();
}
return result.str();
}
} // namespace PythonFormatting
......@@ -43,6 +43,7 @@ BA_CORE_API_ std::string printNm(double input);
BA_CORE_API_ std::string printScientificDouble(double input);
BA_CORE_API_ std::string printDegrees(double input);
BA_CORE_API_ std::string printValue(double value, const std::string& units = "");
BA_CORE_API_ std::string printString(const std::string& value);
BA_CORE_API_ bool isSquare(double length1, double length2, double angle);
BA_CORE_API_ bool isHexagonal(double length1, double length2, double angle);
......
......@@ -258,8 +258,11 @@ std::string SimulationToPython::defineOffSpecBeam(const OffSpecSimulation& simul
std::ostringstream result;
const Beam& beam = simulation.getInstrument().getBeam();
result << indent() << "alpha_i_axis = "
<< PythonFormatting::printAxis(*simulation.beamAxis(), BornAgain::UnitsRad) << "\n";
result << indent() << "simulation.setBeamParameters(" << printNm(beam.getWavelength()) << ", "
<< printDegrees(beam.getAlpha()) << ", " << printDegrees(beam.getPhi()) << ")\n";
<< "alpha_i_axis, " << printDegrees(beam.getPhi()) << ")\n";
result << defineBeamPolarization(beam);
result << defineBeamIntensity(beam);
......
......@@ -56,7 +56,7 @@ set(test_cases
RotatedPyramidsDistribution
SpheresWithLimitsDistribution
ConesWithLimitsDistribution
# OffSpecularResonator
OffSpecularResonator
)
add_executable(PyStandardTest main.cpp PyStandardTest.h PyStandardTest.cpp)
......
......@@ -111,9 +111,9 @@ TEST_F(PythonFormattingTest, printParameterDistribution)
TEST_F(PythonFormattingTest, printAxis)
{
FixedBinAxis axis1("axis0", 10, -1.0, 2.0);
EXPECT_EQ(PythonFormatting::printAxis(axis1), "ba.FixedBinAxis(10, -1.0, 2.0)");
EXPECT_EQ(PythonFormatting::printAxis(axis1), "ba.FixedBinAxis(\"axis0\", 10, -1.0, 2.0)");
FixedBinAxis axis2("axis0", 10, -1.0*Units::deg, 2.0*Units::deg);
EXPECT_EQ(PythonFormatting::printAxis(axis2, BornAgain::UnitsRad),
"ba.FixedBinAxis(10, -1.0*deg, 2.0*deg)");
"ba.FixedBinAxis(\"axis0\", 10, -1.0*deg, 2.0*deg)");
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment