diff --git a/Tests/UnitTests/Core/Core/PythonFormattingTest.cpp b/Tests/UnitTests/Core/Core/PythonFormattingTest.cpp index e9187d3b93516877fe8e790a162d39466ea3e9f5..b00265512649eab1b4d88bd3893c5e552a9532bd 100644 --- a/Tests/UnitTests/Core/Core/PythonFormattingTest.cpp +++ b/Tests/UnitTests/Core/Core/PythonFormattingTest.cpp @@ -8,7 +8,37 @@ #include "Sample/Correlations/FTDecay2D.h" #include "Sample/Correlations/FTDistributions1D.h" #include "Sample/Correlations/FTDistributions2D.h" +#include "Sample/HardParticle/FormFactorAnisoPyramid.h" +#include "Sample/HardParticle/FormFactorBar.h" +#include "Sample/HardParticle/FormFactorBox.h" +#include "Sample/HardParticle/FormFactorCantellatedCube.h" +#include "Sample/HardParticle/FormFactorCone.h" +#include "Sample/HardParticle/FormFactorCone6.h" +#include "Sample/HardParticle/FormFactorCosineRipple.h" +#include "Sample/HardParticle/FormFactorCuboctahedron.h" +#include "Sample/HardParticle/FormFactorCylinder.h" +#include "Sample/HardParticle/FormFactorDodecahedron.h" +#include "Sample/HardParticle/FormFactorDot.h" +#include "Sample/HardParticle/FormFactorEllipsoidalCylinder.h" +#include "Sample/HardParticle/FormFactorFullSphere.h" +#include "Sample/HardParticle/FormFactorFullSpheroid.h" +#include "Sample/HardParticle/FormFactorHemiEllipsoid.h" +#include "Sample/HardParticle/FormFactorHollowSphere.h" +#include "Sample/HardParticle/FormFactorIcosahedron.h" +#include "Sample/HardParticle/FormFactorLongBoxGauss.h" +#include "Sample/HardParticle/FormFactorLongBoxLorentz.h" +#include "Sample/HardParticle/FormFactorPrism3.h" +#include "Sample/HardParticle/FormFactorPrism6.h" +#include "Sample/HardParticle/FormFactorPyramid.h" +#include "Sample/HardParticle/FormFactorSawtoothRipple.h" +#include "Sample/HardParticle/FormFactorTetrahedron.h" +#include "Sample/HardParticle/FormFactorTruncatedCube.h" +#include "Sample/HardParticle/FormFactorTruncatedSphere.h" +#include "Sample/HardParticle/FormFactorTruncatedSpheroid.h" #include "Sample/Slice/LayerRoughness.h" +#include "Sample/SoftParticle/FormFactorGauss.h" +#include "Sample/SoftParticle/FormFactorSphereGaussianRadius.h" +#include "Sample/SoftParticle/FormFactorSphereLogNormalRadius.h" #include "Tests/GTestWrapper/google_test.h" class PythonFormattingTest : public ::testing::Test { @@ -155,5 +185,115 @@ TEST_F(PythonFormattingTest, printParameterDistribution) TEST_F(PythonFormattingTest, printLayerRoughness) { - EXPECT_EQ(LayerRoughness(1.1, 2.2, 3.3).pythonConstructor(), "LayerRoughness(1.1, 2.2, 3.3*nm)"); + EXPECT_EQ(LayerRoughness(1.1, 2.2, 3.3).pythonConstructor(), + "LayerRoughness(1.1, 2.2, 3.3*nm)"); +} + +TEST_F(PythonFormattingTest, printFormFactors) +{ + // #baPool missing: class FormFactorCoreShell; + // #baPool missing: class FormFactorCrystal; + + EXPECT_EQ(FormFactorAnisoPyramid(12.0, 14.0, 5.0, 55 * Units::deg).pythonConstructor(), + "FormFactorAnisoPyramid(12*nm, 14*nm, 5*nm, 55*deg)"); + + EXPECT_EQ(FormFactorDot(12.0).pythonConstructor(), "FormFactorDot(12*nm)"); + + EXPECT_EQ(FormFactorGaussSphere(12.0).pythonConstructor(), "FormFactorGaussSphere(12*nm)"); + + EXPECT_EQ(FormFactorHemiEllipsoid(6, 7, 5).pythonConstructor(), + "FormFactorHemiEllipsoid(6*nm, 7*nm, 5*nm)"); + + EXPECT_EQ(FormFactorHollowSphere(6, 7).pythonConstructor(), + "FormFactorHollowSphere(6*nm, 7*nm)"); + + EXPECT_EQ(FormFactorBox(6, 7, 5).pythonConstructor(), "FormFactorBox(6*nm, 7*nm, 5*nm)"); + + EXPECT_EQ(FormFactorCone(6, 5, 55 * Units::deg).pythonConstructor(), + "FormFactorCone(6*nm, 5*nm, 55*deg)"); + + EXPECT_EQ(FormFactorCone6(6, 5, 55 * Units::deg).pythonConstructor(), + "FormFactorCone6(6*nm, 5*nm, 55*deg)"); + + EXPECT_EQ(FormFactorCuboctahedron(10, 4, 0.7, 55 * Units::deg).pythonConstructor(), + "FormFactorCuboctahedron(10*nm, 4*nm, 0.7*nm, 55*deg)"); + + EXPECT_EQ(FormFactorCylinder(3, 5).pythonConstructor(), "FormFactorCylinder(3*nm, 5*nm)"); + + EXPECT_EQ(FormFactorDodecahedron(3).pythonConstructor(), "FormFactorDodecahedron(3*nm)"); + + EXPECT_EQ(FormFactorEllipsoidalCylinder(3, 4, 5).pythonConstructor(), + "FormFactorEllipsoidalCylinder(3*nm, 4*nm, 5*nm)"); + + EXPECT_EQ(FormFactorCantellatedCube(10, 2).pythonConstructor(), + "FormFactorCantellatedCube(10*nm, 2*nm)"); + + EXPECT_EQ(FormFactorFullSphere(5).pythonConstructor(), "FormFactorFullSphere(5*nm)"); + + EXPECT_EQ(FormFactorFullSpheroid(3, 5).pythonConstructor(), + "FormFactorFullSpheroid(3*nm, 5*nm)"); + + EXPECT_EQ(FormFactorIcosahedron(7).pythonConstructor(), "FormFactorIcosahedron(7*nm)"); + + EXPECT_EQ(FormFactorLongBoxGauss(6, 7, 5).pythonConstructor(), + "FormFactorLongBoxGauss(6*nm, 7*nm, 5*nm)"); + + EXPECT_EQ(FormFactorLongBoxLorentz(6, 7, 5).pythonConstructor(), + "FormFactorLongBoxLorentz(6*nm, 7*nm, 5*nm)"); + + EXPECT_EQ(FormFactorPrism3(6, 4).pythonConstructor(), "FormFactorPrism3(6*nm, 4*nm)"); + + EXPECT_EQ(FormFactorPrism6(3, 4).pythonConstructor(), "FormFactorPrism6(3*nm, 4*nm)"); + + EXPECT_EQ(FormFactorPyramid(10, 4, 60 * Units::deg).pythonConstructor(), + "FormFactorPyramid(10*nm, 4*nm, 60*deg)"); + + EXPECT_EQ(FormFactorTruncatedSphere(5, 3, 0).pythonConstructor(), + "FormFactorTruncatedSphere(5*nm, 3*nm, 0*nm)"); + + EXPECT_EQ(FormFactorTruncatedSpheroid(3, 5, 1.5, 0).pythonConstructor(), + "FormFactorTruncatedSpheroid(3*nm, 5*nm, 1.5, 0*nm)"); + + EXPECT_EQ(FormFactorTetrahedron(16, 4, 60 * Units::deg).pythonConstructor(), + "FormFactorTetrahedron(16*nm, 4*nm, 60*deg)"); + + EXPECT_EQ(FormFactorCosineRippleBox(100, 20, 4).pythonConstructor(), + "FormFactorCosineRippleBox(100*nm, 20*nm, 4*nm)"); + + EXPECT_EQ(FormFactorCosineRippleGauss(100, 20, 4).pythonConstructor(), + "FormFactorCosineRippleGauss(100*nm, 20*nm, 4*nm)"); + + EXPECT_EQ(FormFactorCosineRippleLorentz(100, 20, 4).pythonConstructor(), + "FormFactorCosineRippleLorentz(100*nm, 20*nm, 4*nm)"); + + EXPECT_EQ(FormFactorTruncatedCube(15, 6).pythonConstructor(), + "FormFactorTruncatedCube(15*nm, 6*nm)"); + + EXPECT_EQ(FormFactorSawtoothRippleBox(100, 20, 4, 0.3).pythonConstructor(), + "FormFactorSawtoothRippleBox(100*nm, 20*nm, 4*nm, 0.3*nm)"); + + EXPECT_EQ(FormFactorSawtoothRippleGauss(100, 20, 4, 0.3).pythonConstructor(), + "FormFactorSawtoothRippleGauss(100*nm, 20*nm, 4*nm, 0.3*nm)"); + + EXPECT_EQ(FormFactorSawtoothRippleLorentz(100, 20, 4, 0.3).pythonConstructor(), + "FormFactorSawtoothRippleLorentz(100*nm, 20*nm, 4*nm, 0.3*nm)"); + + EXPECT_EQ(FormFactorSphereGaussianRadius(100, 20).pythonConstructor(), + "FormFactorSphereGaussianRadius(100*nm, 20*nm)"); + + EXPECT_EQ(FormFactorBarGauss(100, 20, 4).pythonConstructor(), + "FormFactorBarGauss(100*nm, 20*nm, 4*nm)"); + + EXPECT_EQ(FormFactorBarLorentz(100, 20, 4).pythonConstructor(), + "FormFactorBarLorentz(100*nm, 20*nm, 4*nm)"); +} + +TEST_F(PythonFormattingTest, DISABLED_FormFactorSphereLogNormalRadius) +{ + // #baPool ++ this fails already for non refactored code: 3rd parameter "sample" is not contained + // in the original py-ctor generation. The generated py code expects all three parameters (see + // libBornAgain.sample.py)! + // => decide what to do and enable the test + EXPECT_EQ(FormFactorSphereLogNormalRadius(100, 20, 10).pythonConstructor(), + "FormFactorSphereLogNormalRadius(100*nm, 20.0, 10)"); } \ No newline at end of file