diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 05:54:39 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 05:54:39 +0000 |
commit | 267c6f2ac71f92999e969232431ba04678e7437e (patch) | |
tree | 358c9467650e1d0a1d7227a21dac2e3d08b622b2 /sc/qa/unit/opencl-test-2.cxx | |
parent | Initial commit. (diff) | |
download | libreoffice-267c6f2ac71f92999e969232431ba04678e7437e.tar.xz libreoffice-267c6f2ac71f92999e969232431ba04678e7437e.zip |
Adding upstream version 4:24.2.0.upstream/4%24.2.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'sc/qa/unit/opencl-test-2.cxx')
-rw-r--r-- | sc/qa/unit/opencl-test-2.cxx | 1854 |
1 files changed, 1854 insertions, 0 deletions
diff --git a/sc/qa/unit/opencl-test-2.cxx b/sc/qa/unit/opencl-test-2.cxx new file mode 100644 index 0000000000..4c7fbdbcb9 --- /dev/null +++ b/sc/qa/unit/opencl-test-2.cxx @@ -0,0 +1,1854 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ + +#include <sal/config.h> + +#include <string_view> + +#include "helper/qahelper.hxx" + +#include <docsh.hxx> +#include <document.hxx> + +#include <comphelper/sequence.hxx> +#include <comphelper/servicehelper.hxx> + +using namespace ::com::sun::star; +using namespace ::com::sun::star::uno; + +class ScOpenCLTest2 + : public ScModelTestBase +{ +public: + ScOpenCLTest2(); +}; + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaPi) +{ + initTestEnv(u"xls/opencl/math/pi.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 15; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(0,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(0,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaRandom) +{ + initTestEnv(u"xls/opencl/math/random.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 15; ++i) + { + pDoc->GetValue(ScAddress(0,i,0)); // LO + pDocRes->GetValue(ScAddress(0,i,0)); // Excel + //because the random numbers will always change,so give the test "true" + CPPUNIT_ASSERT(true); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaSumSQ) +{ + initTestEnv(u"xls/opencl/math/sumsq.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i < 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(5,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(5,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaVar) +{ + initTestEnv(u"xls/opencl/statistical/Var.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaSkew) +{ + initTestEnv(u"xls/opencl/statistical/Skew.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaSkewp) +{ + initTestEnv(u"xls/opencl/statistical/Skewp.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaTrunc) +{ + initTestEnv(u"xls/opencl/math/trunc.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 15; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(2,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaCovar) +{ + initTestEnv(u"xls/opencl/statistical/Covar.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 0; i <= 16; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(2,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaDevSq) +{ + initTestEnv(u"xls/opencl/statistical/DevSq.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 0; i <= 11; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaCscH) +{ + initTestEnv(u"ods/opencl/math/csch.ods"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 15; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaPower) +{ + initTestEnv(u"ods/opencl/math/power.ods"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 15; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(2,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaChiSqDist) +{ + initTestEnv(u"ods/opencl/statistical/CHISQDIST.ods"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 9; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(2,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } + for (SCROW i = 1; i <= 9; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(3,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(3,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaFDist) +{ + initTestEnv(u"xls/opencl/statistical/Fdist.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 0; i <= 9; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(3,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(3,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaArcTan2) +{ + initTestEnv(u"ods/opencl/math/ArcTan2.ods"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Verify ATan2 Function + for (SCROW i = 1; i <= 17; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(2,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, 0.000001); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaChiSqInv) +{ + initTestEnv(u"ods/opencl/statistical/CHISQINV.ods"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 9; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(2,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaPoisson) +{ + initTestEnv(u"xls/opencl/statistical/Poisson.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 19; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(3,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(3,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaExpondist) +{ + initTestEnv(u"xls/opencl/statistical/Expondist.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 0; i <= 9; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(3,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(3,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaBitOr) +{ + initTestEnv(u"ods/opencl/math/BitOr.ods"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Verify BitOr Function + for (SCROW i = 1; i <= 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(2,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaOdd) +{ + initTestEnv(u"xls/opencl/math/odd.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 15; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaMod) +{ + initTestEnv(u"xls/opencl/math/mod.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 15; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(2,i,0)); + if(fExcel == 0.0f) + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, 1e-10); + else + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaGammaInv) +{ + initTestEnv(u"xls/opencl/statistical/GammaInv.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 19; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(3,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(3,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + fLibre = pDoc->GetValue(ScAddress(4,i,0)); + fExcel = pDocRes->GetValue(ScAddress(4,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaFInv) +{ + initTestEnv(u"xls/opencl/statistical/FInv.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 19; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(3,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(3,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + fLibre = pDoc->GetValue(ScAddress(4,i,0)); + fExcel = pDocRes->GetValue(ScAddress(4,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaFTest) +{ + initTestEnv(u"xls/opencl/statistical/FTest.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 19; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(2,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaB) +{ + initTestEnv(u"xls/opencl/statistical/B.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 19; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(4,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(4,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + fLibre = pDoc->GetValue(ScAddress(5,i,0)); + fExcel = pDocRes->GetValue(ScAddress(5,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaBetaDist) +{ + initTestEnv(u"ods/opencl/statistical/BetaDist.ods"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 19; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(6,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(6,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + fLibre = pDoc->GetValue(ScAddress(7,i,0)); + fExcel = pDocRes->GetValue(ScAddress(7,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaEven) +{ + initTestEnv(u"xls/opencl/math/even.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 15; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaExp) +{ + initTestEnv(u"ods/opencl/math/exp.ods"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 15; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaChiDist) +{ + initTestEnv(u"xls/opencl/statistical/ChiDist.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 19; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(2,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaBitLshift) +{ + initTestEnv(u"ods/opencl/math/BitLshift.ods"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Verify BitLshift Function + for (SCROW i = 1; i <= 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(2,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaBitRshift) +{ + initTestEnv(u"ods/opencl/math/BitRshift.ods"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Verify BitRshift Function + for (SCROW i = 1; i <= 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(2,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaFloor) +{ + initTestEnv(u"ods/opencl/math/floor.ods"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 9; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(3,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(3,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaLog) +{ + initTestEnv(u"xls/opencl/math/log.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 47; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(2,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testSpreadSheetFormulaVLookup) +{ + initTestEnv(u"xls/opencl/spreadsheet/VLookup.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 32; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(5,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(5,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } + for (SCROW i = 40; i <= 50; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(5,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(5,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaChiInv) +{ + initTestEnv(u"xls/opencl/statistical/ChiInv.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 10; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(2,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaConvert) +{ + initTestEnv(u"xls/opencl/math/convert.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 3; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathCountIfsFormula) +{ + initTestEnv(u"xls/opencl/math/countifs.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + ScDocShell* pDocSh = getScDocShell(); + pDocSh->DoHardRecalc(); + + for (SCROW i = 1; i < 10; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(4, i, 0)); + double fExcel = pDocRes->GetValue(ScAddress(4, i, 0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaBitXor) +{ + initTestEnv(u"ods/opencl/math/BitXor.ods"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Verify BitXor Function + for (SCROW i = 1; i <= 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(2,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathAverageIfsFormula) +{ + initTestEnv(u"xls/opencl/math/averageifs.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + ScDocShell* pDocSh = getScDocShell(); + + pDocSh->DoHardRecalc(); + + for (SCROW i = 1; i <= 11; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(4,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(4,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaLog10) +{ + initTestEnv(u"ods/opencl/math/log10.ods"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 15; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaCombina) +{ + initTestEnv(u"xls/opencl/math/combina.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 47; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(2,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaCeil) +{ + initTestEnv(u"ods/opencl/math/Ceil.ods"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Verify Ceiling Function + for (SCROW i = 1; i <= 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(2,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaSqrtPi) +{ + initTestEnv(u"xls/opencl/math/sqrtpi.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i < 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(2,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaVarP) +{ + initTestEnv(u"xls/opencl/statistical/VarP.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaStDev) +{ + initTestEnv(u"xls/opencl/statistical/StDev.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaStDevP) +{ + initTestEnv(u"xls/opencl/statistical/StDevP.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaSlope) +{ + initTestEnv(u"xls/opencl/statistical/Slope.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(2,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaSTEYX) +{ + initTestEnv(u"xls/opencl/statistical/STEYX.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(2,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaZTest) +{ + initTestEnv(u"xls/opencl/statistical/ZTest.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(3,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(3,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaTTest) +{ + initTestEnv(u"xls/opencl/statistical/TTest.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(4,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(4,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaTDist) +{ + initTestEnv(u"xls/opencl/statistical/TDist.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(3,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(3,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaTInv) +{ + initTestEnv(u"xls/opencl/statistical/TInv.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(2,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaBinomDist) +{ + initTestEnv(u"xls/opencl/statistical/BinomDist.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 9; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(4,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(4,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaProduct) +{ + initTestEnv(u"xls/opencl/math/product.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 3; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaKombin) +{ + initTestEnv(u"ods/opencl/math/Kombin.ods"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Verify Combin Function + for (SCROW i = 1; i <= 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(2,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testArrayFormulaSumX2MY2) +{ + initTestEnv(u"xls/opencl/array/SUMX2MY2.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 9; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2, i, 0)); + double fExcel = pDocRes->GetValue(ScAddress(2, i, 0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } + for (SCROW i = 20; i <= 26; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2, i, 0)); + double fExcel = pDocRes->GetValue(ScAddress(2, i, 0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaHypGeomDist) +{ + initTestEnv(u"xls/opencl/statistical/HypGeomDist.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 19; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(4,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(4,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testArrayFormulaSumX2PY2) +{ + initTestEnv(u"xls/opencl/array/SUMX2PY2.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 9; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2, i, 0)); + double fExcel = pDocRes->GetValue(ScAddress(2, i, 0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } + for (SCROW i = 20; i <= 26; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2, i, 0)); + double fExcel = pDocRes->GetValue(ScAddress(2, i, 0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaBetainv) +{ + initTestEnv(u"xls/opencl/statistical/Betainv.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 19; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(5,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(5,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaMina) +{ + initTestEnv(u"xls/opencl/statistical/Mina.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 9; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(6, i, 0)); + double fExcel = pDocRes->GetValue(ScAddress(6, i, 0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testArrayFormulaSumXMY2) +{ + initTestEnv(u"xls/opencl/array/SUMXMY2.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 9; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2, i, 0)); + double fExcel = pDocRes->GetValue(ScAddress(2, i, 0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } + for (SCROW i = 20; i <= 26; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2, i, 0)); + double fExcel = pDocRes->GetValue(ScAddress(2, i, 0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaCountA) +{ + initTestEnv(u"xls/opencl/statistical/counta.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 9; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(6, i, 0)); + double fExcel = pDocRes->GetValue(ScAddress(6, i, 0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaMaxa) +{ + initTestEnv(u"xls/opencl/statistical/Maxa.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 9; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(6, i, 0)); + double fExcel = pDocRes->GetValue(ScAddress(6, i, 0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaSumProduct) +{ + initTestEnv(u"xls/opencl/math/sumproduct_mixSliding.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 0; i <= 9; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(2,i,0)); + if ( i == 1 ) + CPPUNIT_ASSERT_DOUBLES_EQUAL(82, fLibre, fabs(0.0001*fExcel)); + else if ( i == 2 ) + CPPUNIT_ASSERT_DOUBLES_EQUAL(113, fLibre, fabs(0.0001*fExcel)); + else if ( i == 4 ) + CPPUNIT_ASSERT_DOUBLES_EQUAL(175, fLibre, fabs(0.0001*fExcel)); + else if ( i == 5 ) + CPPUNIT_ASSERT_DOUBLES_EQUAL(206, fLibre, fabs(0.0001*fExcel)); + else if ( i == 6 ) + CPPUNIT_ASSERT_DOUBLES_EQUAL(237, fLibre, fabs(0.0001*fExcel)); + else if ( i == 7 ) + CPPUNIT_ASSERT_DOUBLES_EQUAL(268, fLibre, fabs(0.0001*fExcel)); + else + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaAverageIf) +{ + initTestEnv(u"xls/opencl/math/averageif.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 2; i <= 21; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(6,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(6,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaAverageA) +{ + initTestEnv(u"xls/opencl/statistical/AverageA.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 9; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(6, i, 0)); + double fExcel = pDocRes->GetValue(ScAddress(6, i, 0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testLogicalFormulaAnd) +{ + initTestEnv(u"xls/opencl/logical/and.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 1; i <= 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2, i, 0)); + double fExcel = pDocRes->GetValue(ScAddress(2, i, 0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } + for (SCROW i = 1; i <= 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(3, i, 0)); + double fExcel = pDocRes->GetValue(ScAddress(3, i, 0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaVarA) +{ + initTestEnv(u"xls/opencl/statistical/VarA.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaVarPA) +{ + initTestEnv(u"xls/opencl/statistical/VarPA.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaStDevA) +{ + initTestEnv(u"xls/opencl/statistical/StDevA.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaStDevPA) +{ + initTestEnv(u"xls/opencl/statistical/StDevPA.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testFinancialMDurationFormula1) +{ + initTestEnv(u"xls/opencl/financial/MDuration1.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 9; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(6, i, 0)); + double fExcel = pDocRes->GetValue(ScAddress(6, i, 0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel,fLibre,fabs(0.00000000001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaSumProduct2) +{ + initTestEnv(u"xls/opencl/math/sumproductTest.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 2; i <= 12; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(4,i,1)); + double fExcel = pDocRes->GetValue(ScAddress(4,i,1)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalParallelCountBug) +{ + initTestEnv(u"ods/opencl/statistical/parallel_count_bug_243.ods"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i < 13; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2, i, 0)); + double fExcel = pDocRes->GetValue(ScAddress(2, i, 0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testLogicalFormulaOr) +{ + initTestEnv(u"xls/opencl/logical/or.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i < 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2, i, 0)); + double fExcel = pDocRes->GetValue(ScAddress(2, i, 0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testLogicalFormulaNot) +{ + initTestEnv(u"xls/opencl/logical/not.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i < 3000; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1, i, 0)); + double fExcel = pDocRes->GetValue(ScAddress(1, i, 0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testLogicalFormulaXor) +{ + initTestEnv(u"xls/opencl/logical/xor.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i < 3000; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1, i, 0)); + double fExcel = pDocRes->GetValue(ScAddress(1, i, 0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testDatabaseFormulaDcount) +{ + initTestEnv(u"xls/opencl/database/dcount.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 32; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(9,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(10,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.00000000001)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testDatabaseFormulaDcountA) +{ + initTestEnv(u"xls/opencl/database/dcountA.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 32; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(9,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(10,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.00000000001)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testDatabaseFormulaDmax) +{ + initTestEnv(u"xls/opencl/database/dmax.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 32; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(9,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(10,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.00000000001)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testDatabaseFormulaDmin) +{ + initTestEnv(u"xls/opencl/database/dmin.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 32; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(9,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(10,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.00000000001)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testDatabaseFormulaDproduct) +{ + initTestEnv(u"xls/opencl/database/dproduct.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 32; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(9,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(10,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.00000000001)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testDatabaseFormulaDaverage) +{ + initTestEnv(u"xls/opencl/database/daverage.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 32; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(9,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(10,i,0)); + //CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.00000000001)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testDatabaseFormulaDstdev) +{ + initTestEnv(u"xls/opencl/database/dstdev.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 32; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(9,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(10,i,0)); + //CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.00000000001)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testDatabaseFormulaDstdevp) +{ + initTestEnv(u"xls/opencl/database/dstdevp.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 32; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(9,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(10,i,0)); + //CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.00000000001)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testDatabaseFormulaDsum) +{ + initTestEnv(u"xls/opencl/database/dsum.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 32; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(9,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(10,i,0)); + //CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.00000000001)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testDatabaseFormulaDvar) +{ + initTestEnv(u"xls/opencl/database/dvar.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 32; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(9,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(10,i,0)); + //CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.00000000001)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testDatabaseFormulaDvarp) +{ + initTestEnv(u"xls/opencl/database/dvarp.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 32; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(9,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(10,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.00000000001)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaRoundUp) +{ + initTestEnv(u"xls/opencl/math/roundup.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 9; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaRoundDown) +{ + initTestEnv(u"xls/opencl/math/rounddown.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 9; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaInt) +{ + initTestEnv(u"xls/opencl/math/int.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 9; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaRadians) +{ + initTestEnv(u"xls/opencl/math/radians.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 9; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaDegrees) +{ + initTestEnv(u"xls/opencl/math/degrees.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 200; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaIsEven) +{ + initTestEnv(u"xls/opencl/math/iseven.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 9; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaCountIf) +{ + initTestEnv(u"xls/opencl/math/countif.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 26; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaIsOdd) +{ + initTestEnv(u"xls/opencl/math/isodd.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 9; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaFact) +{ + initTestEnv(u"xls/opencl/math/fact.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 18; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaSEC) +{ + initTestEnv(u"ods/opencl/math/sec.ods"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 15; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaSECH) +{ + initTestEnv(u"ods/opencl/math/sech.ods"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 15; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaMROUND) +{ + initTestEnv(u"xls/opencl/math/MROUND.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 13; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(2,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaQuotient) +{ + initTestEnv(u"ods/opencl/math/Quotient.ods"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Verify BitAnd Function + for (SCROW i = 1; i <= 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(2,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaSeriesSum) +{ + initTestEnv(u"xls/opencl/math/seriessum.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 15; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaSumIf) +{ + initTestEnv(u"xls/opencl/math/sumif.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 26; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(2,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testAddInFormulaBesseLJ) +{ + initTestEnv(u"xls/opencl/addin/besselj.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(2,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaAvedev) +{ + initTestEnv(u"xls/opencl/statistical/Avedev.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 19; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(3,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(3,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testNegSub) +{ + initTestEnv(u"xls/opencl/math/NegSub.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 0; i <= 9; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testMathFormulaAverageIf_Mix) +{ + initTestEnv(u"xls/opencl/math/averageif_mix.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + for (SCROW i = 0; i <= 9; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(2,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaKurt1) +{ + initTestEnv(u"xls/opencl/statistical/Kurt1.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 19; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(2,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(2,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaHarMean1) +{ + initTestEnv(u"xls/opencl/statistical/HarMean1.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 19; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaVarA1) +{ + initTestEnv(u"xls/opencl/statistical/VarA1.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaVarPA1) +{ + initTestEnv(u"xls/opencl/statistical/VarPA1.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaStDevA1) +{ + initTestEnv(u"xls/opencl/statistical/StDevA1.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +CPPUNIT_TEST_FIXTURE(ScOpenCLTest2, testStatisticalFormulaStDevPA1) +{ + initTestEnv(u"xls/opencl/statistical/StDevPA1.xls"); + ScDocument* pDoc = getScDoc(); + ScDocument* pDocRes = getScDoc2(); + pDoc->CalcAll(); + + // Check the results of formula cells in the shared formula range. + for (SCROW i = 1; i <= 20; ++i) + { + double fLibre = pDoc->GetValue(ScAddress(1,i,0)); + double fExcel = pDocRes->GetValue(ScAddress(1,i,0)); + CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel)); + } +} + +ScOpenCLTest2::ScOpenCLTest2() + : ScModelTestBase( "sc/qa/unit/data" ) +{ +} + +CPPUNIT_PLUGIN_IMPLEMENT(); + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |