LCOV - code coverage report
Current view: top level - sc/qa/unit - opencl-test.cxx (source / functions) Hit Total Coverage
Test: commit c8344322a7af75b84dd3ca8f78b05543a976dfd5 Lines: 919 2703 34.0 %
Date: 2015-06-13 12:38:46 Functions: 239 242 98.8 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /*
       3             :  * This file is added by mcw.
       4             :  */
       5             : 
       6             : #include <sal/config.h>
       7             : #include <unotest/filters-test.hxx>
       8             : #include <test/bootstrapfixture.hxx>
       9             : #include <rtl/strbuf.hxx>
      10             : #include <osl/file.hxx>
      11             : 
      12             : #include "scdll.hxx"
      13             : #include <opencl/platforminfo.hxx>
      14             : #include <sfx2/app.hxx>
      15             : #include <sfx2/docfilt.hxx>
      16             : #include <sfx2/docfile.hxx>
      17             : #include <sfx2/sfxmodelfactory.hxx>
      18             : #include <svl/stritem.hxx>
      19             : 
      20             : #include "helper/qahelper.hxx"
      21             : 
      22             : #include "calcconfig.hxx"
      23             : #include "interpre.hxx"
      24             : 
      25             : #include "docsh.hxx"
      26             : #include "postit.hxx"
      27             : #include "patattr.hxx"
      28             : #include "scitems.hxx"
      29             : #include "document.hxx"
      30             : #include "cellform.hxx"
      31             : #include "drwlayer.hxx"
      32             : #include "userdat.hxx"
      33             : #include "formulacell.hxx"
      34             : #include "formulagroup.hxx"
      35             : 
      36             : #include <svx/svdpage.hxx>
      37             : 
      38             : using namespace ::com::sun::star;
      39             : using namespace ::com::sun::star::uno;
      40             : 
      41             : /* Implementation of Filters test */
      42             : 
      43         446 : class ScOpenCLTest
      44             :     : public test::FiltersTest
      45             :     , public ScBootstrapFixture
      46             : {
      47             : public:
      48             :     ScOpenCLTest();
      49             : 
      50             :     /**
      51             :      * Try to auto-detect OpenCL device if one is available.
      52             :      *
      53             :      * @return true if a usable OpenCL device is found, false otherwise.
      54             :      */
      55             :     bool detectOpenCLDevice();
      56             : 
      57             :     /**
      58             :      * Turn on OpenCL group interpreter. Call this after the document is
      59             :      * loaded and before performing formula calculation.
      60             :      */
      61             :     void enableOpenCL();
      62             : 
      63             :     virtual void setUp() SAL_OVERRIDE;
      64             :     virtual void tearDown() SAL_OVERRIDE;
      65             : 
      66             :     virtual bool load( const OUString &rFilter, const OUString &rURL,
      67             :             const OUString &rUserData, SfxFilterFlags nFilterFlags,
      68             :             SotClipboardFormatId nClipboardID, unsigned int nFilterVersion) SAL_OVERRIDE;
      69             :     void testSharedFormulaXLS();
      70             : #if 0
      71             :     void testSharedFormulaXLSGroundWater();
      72             :     void testSharedFormulaXLSStockHistory();
      73             : #endif
      74             :     void testFinacialFormula();
      75             :     void testStatisticalFormulaFisher();
      76             :     void testStatisticalFormulaFisherInv();
      77             :     void testStatisticalFormulaGamma();
      78             :     void testFinacialFvscheduleFormula();
      79             : // this test has intermittent failures on OSX
      80             : #if !defined MACOSX
      81             :     void testFinacialIRRFormula();
      82             : #endif
      83             :     void testFinacialMIRRFormula();
      84             :     void testFinacialRateFormula();
      85             :     void testFinancialAccrintmFormula();
      86             :     void testFinancialAccrintFormula();
      87             :     void testCompilerHorizontal();
      88             :     void testCompilerNested();
      89             :     void testFinacialSLNFormula();
      90             :     void testStatisticalFormulaGammaLn();
      91             :     void testStatisticalFormulaGauss();
      92             :     void testStatisticalFormulaGeoMean();
      93             :     void testStatisticalFormulaHarMean();
      94             :     void testFinancialCoupdaybsFormula();
      95             :     void testFinacialDollardeFormula();
      96             :     void testCompilerString();
      97             :     void testCompilerInEq();
      98             :     void testFinacialDollarfrFormula();
      99             :     void testFinacialSYDFormula();
     100             :     void testStatisticalFormulaCorrel();
     101             :     void testFinancialCoupdaysFormula();
     102             :     void testFinancialCoupdaysncFormula();
     103             :     void testFinacialDISCFormula();
     104             :     void testFinacialINTRATEFormula();
     105             :     void testMathFormulaCos();
     106             :     void testMathFormulaCsc();
     107             :     void testStatisticalFormulaRsq();
     108             :     void testStatisticalFormulaPearson();
     109             :     void testStatisticalFormulaNegbinomdist();
     110             :     void testFinacialXNPVFormula();
     111             :     void testFinacialPriceMatFormula();
     112             :     void testFinacialFormulaReceived();
     113             :     void testFinancialFormulaCumipmt();
     114             :     void testFinancialFormulaCumprinc();
     115             :     void testFinacialRRIFormula();
     116             :     void testFinacialEFFECT_ADDFormula();
     117             :     void testFinacialNominalFormula();
     118             :     void testFinacialTBILLEQFormula();
     119             :     void testFinacialTBILLPRICEFormula();
     120             :     void testFinacialTBILLYIELDFormula();
     121             :     void testFinacialYIELDFormula();
     122             :     void testFinacialYIELDDISCFormula();
     123             :     void testFinacialYIELDMATFormula();
     124             :     void testFinacialPMTFormula();
     125             :     void testFinacialPPMTFormula();
     126             :     void testFinancialISPMTFormula();
     127             :     void testFinacialPriceFormula();
     128             :     void testFinancialDurationFormula();
     129             :     void testFinancialCoupnumFormula();
     130             :     void testMathFormulaSinh();
     131             :     void testMathFormulaAbs();
     132             :     void testFinacialPVFormula();
     133             :     void testMathFormulaSin();
     134             :     void testMathFormulaTan();
     135             :     void testMathFormulaTanH();
     136             :     void testStatisticalFormulaStandard();
     137             :     void testStatisticalFormulaWeibull();
     138             :     void testStatisticalFormulaMedian();
     139             :     void testFinancialDuration_ADDFormula();
     140             :     void testFinancialAmordegrcFormula();
     141             :     void testFinancialAmorlincFormula();
     142             :     void testFinancialDDBFormula();
     143             :     void testFinancialFVFormula();
     144             :     void testFinancialMDurationFormula();
     145             :     void testMathSumIfsFormula();
     146             :     void testFinancialVDBFormula();
     147             :     void testStatisticalFormulaKurt();
     148             :     void testFinacialNPERFormula();
     149             :     void testStatisticalFormulaNormdist();
     150             :     void testMathFormulaArcCos();
     151             :     void testMathFormulaSqrt();
     152             :     void testMathFormulaArcCosHyp();
     153             :     void testFinancialXirrFormula();
     154             :     void testFinacialNPVFormula();
     155             :     void testStatisticalFormulaNormsdist();
     156             :     void testStatisticalFormulaNorminv();
     157             :     void testStatisticalFormulaNormsinv();
     158             :     void testStatisticalFormulaPermut();
     159             :     void testStatisticalFormulaPermutation();
     160             :     void testStatisticalFormulaPhi();
     161             :     void testFinancialIPMTFormula();
     162             :     void testStatisticalFormulaConfidence();
     163             :     void testStatisticalFormulaIntercept();
     164             :     void testFinacialODDLPRICEFormula();
     165             :     void testFinacialOddlyieldFormula();
     166             :     void testFinacialPriceDiscFormula();
     167             :     void testFinancialDBFormula();
     168             :     void testFinancialCouppcdFormula();
     169             :     void testFinancialCoupncdFormula();
     170             :     void testStatisticalFormulaLogInv();
     171             :     void testMathFormulaArcCot();
     172             :     void testMathFormulaCosh();
     173             :     void testStatisticalFormulaCritBinom();
     174             :     void testMathFormulaArcCotHyp();
     175             :     void testMathFormulaArcSin();
     176             :     void testMathFormulaArcSinHyp();
     177             :     void testMathFormulaArcTan();
     178             :     void testMathFormulaArcTanHyp();
     179             :     void testMathFormulaBitAnd();
     180             :     void testStatisticalFormulaForecast();
     181             :     void testStatisticalFormulaLogNormDist();
     182             :     void testStatisticalFormulaGammaDist();
     183             :     void testMathFormulaLN();
     184             :     void testMathFormulaRound();
     185             :     void testMathFormulaCot();
     186             :     void testMathFormulaCoth();
     187             :     void testFinacialNPER1Formula();
     188             :     void testStatisticalFormulaFDist();
     189             :     void testStatisticalFormulaVar();
     190             :     void testStatisticalFormulaChiDist();
     191             :     void testMathFormulaPower();
     192             :     void testMathFormulaOdd();
     193             :     void testStatisticalFormulaChiSqDist();
     194             :     void testStatisticalFormulaChiSqInv();
     195             :     void testStatisticalFormulaGammaInv();
     196             :     void testMathFormulaFloor();
     197             :     void testStatisticalFormulaFInv();
     198             :     void testStatisticalFormulaFTest();
     199             :     void testStatisticalFormulaB();
     200             :     void testStatisticalFormulaBetaDist();
     201             :     void testMathFormulaCscH();
     202             :     void testMathFormulaExp();
     203             :     void testMathFormulaLog10();
     204             :     void testStatisticalFormulaExpondist();
     205             :     void testMathAverageIfsFormula();
     206             :     void testMathCountIfsFormula();
     207             :     void testMathFormulaCombina();
     208             :     void testMathFormulaEven();
     209             :     void testMathFormulaLog();
     210             :     void testMathFormulaMod();
     211             :     void testMathFormulaTrunc();
     212             :     void testStatisticalFormulaSkew();
     213             :     void testMathFormulaArcTan2();
     214             :     void testMathFormulaBitOr();
     215             :     void testMathFormulaBitLshift();
     216             :     void testMathFormulaBitRshift();
     217             :     void testMathFormulaBitXor();
     218             :     void testStatisticalFormulaChiInv();
     219             :     void testStatisticalFormulaPoisson();
     220             :     void testMathFormulaSumSQ();
     221             :     void testStatisticalFormulaSkewp();
     222             :     void testMathFormulaSqrtPi();
     223             :     void testStatisticalFormulaBinomDist();
     224             :     void testStatisticalFormulaVarP();
     225             :     void testMathFormulaCeil();
     226             :     // void testMathFormulaKombin();
     227             :     void testStatisticalFormulaDevSq();
     228             :     void testStatisticalFormulaStDev();
     229             :     void testStatisticalFormulaSlope();
     230             :     void testStatisticalFormulaSTEYX();
     231             :     void testStatisticalFormulaZTest();
     232             :     void testMathFormulaPi();
     233             :     void testMathFormulaRandom();
     234             :     void testMathFormulaConvert();
     235             :     void testMathFormulaProduct();
     236             :     void testStatisticalFormulaHypGeomDist();
     237             :     void testArrayFormulaSumX2MY2();
     238             :     void testArrayFormulaSumX2PY2();
     239             :     void testStatisticalFormulaBetainv();
     240             :     void testStatisticalFormulaTTest();
     241             :     void testStatisticalFormulaTDist();
     242             :     void testStatisticalFormulaTInv();
     243             :     void testArrayFormulaSumXMY2();
     244             :     void testStatisticalFormulaStDevP();
     245             :     void testStatisticalFormulaCovar();
     246             :     void testLogicalFormulaAnd();
     247             :     void testLogicalFormulaOr();
     248             :     void testMathFormulaSumProduct();
     249             :     void testMathFormulaSumProduct2();
     250             :     void testStatisticalParallelCountBug();
     251             :     void testSpreadSheetFormulaVLookup();
     252             :     void testLogicalFormulaNot();
     253             :     void testLogicalFormulaXor();
     254             :     void testDatabaseFormulaDmax();
     255             :     void testDatabaseFormulaDmin();
     256             :     void testDatabaseFormulaDproduct();
     257             :     void testDatabaseFormulaDaverage();
     258             :     void testDatabaseFormulaDstdev();
     259             :     void testDatabaseFormulaDstdevp();
     260             :     void testDatabaseFormulaDsum();
     261             :     void testDatabaseFormulaDvar();
     262             :     void testDatabaseFormulaDvarp();
     263             :     void testMathFormulaAverageIf();
     264             :     void testDatabaseFormulaDcount();
     265             :     void testDatabaseFormulaDcountA();
     266             :     void testMathFormulaDegrees();
     267             :     void testMathFormulaRoundUp();
     268             :     void testMathFormulaRoundDown();
     269             :     void testMathFormulaInt();
     270             :     void testMathFormulaRadians();
     271             :     void testMathFormulaCountIf();
     272             :     void testMathFormulaIsEven();
     273             :     void testMathFormulaIsOdd();
     274             :     void testMathFormulaFact();
     275             :     void testStatisticalFormulaMina();
     276             :     void testStatisticalFormulaCountA();
     277             :     void testStatisticalFormulaMaxa();
     278             :     void testStatisticalFormulaAverageA();
     279             :     void testStatisticalFormulaVarA();
     280             :     void testStatisticalFormulaVarPA();
     281             :     void testStatisticalFormulaStDevA();
     282             :     void testStatisticalFormulaStDevPA();
     283             :     void testMathFormulaSEC();
     284             :     void testMathFormulaSECH();
     285             :     void testMathFormulaMROUND();
     286             :     void testMathFormulaSeriesSum();
     287             :     void testMathFormulaQuotient();
     288             :     void testMathFormulaSumIf();
     289             :     void testAddInFormulaBesseLJ();
     290             :     void testNegSub();
     291             :     void testStatisticalFormulaAvedev();
     292             :     void testMathFormulaAverageIf_Mix();
     293             :     void testStatisticalFormulaKurt1();
     294             :     void testStatisticalFormulaHarMean1();
     295             :     void testStatisticalFormulaVarA1();
     296             :     void testStatisticalFormulaVarPA1();
     297             :     void testStatisticalFormulaStDevA1();
     298             :     void testStatisticalFormulaStDevPA1();
     299             :     void testFinancialMDurationFormula1();
     300             : 
     301           2 :     CPPUNIT_TEST_SUITE(ScOpenCLTest);
     302           1 :     CPPUNIT_TEST(testSharedFormulaXLS);
     303           1 :     CPPUNIT_TEST(testFinacialFormula);
     304           1 :     CPPUNIT_TEST(testStatisticalFormulaFisher);
     305           1 :     CPPUNIT_TEST(testStatisticalFormulaFisherInv);
     306           1 :     CPPUNIT_TEST(testStatisticalFormulaGamma);
     307           1 :     CPPUNIT_TEST(testFinacialFvscheduleFormula);
     308             : // this test has intermittent failures on OSX
     309             : #if !defined MACOSX
     310           1 :     CPPUNIT_TEST(testFinacialIRRFormula);
     311             : #endif
     312           1 :     CPPUNIT_TEST(testFinacialMIRRFormula);
     313           1 :     CPPUNIT_TEST(testFinacialRateFormula);
     314           1 :     CPPUNIT_TEST(testCompilerHorizontal);
     315           1 :     CPPUNIT_TEST(testCompilerNested);
     316           1 :     CPPUNIT_TEST(testFinacialSLNFormula);
     317           1 :     CPPUNIT_TEST(testFinancialAccrintmFormula);
     318           1 :     CPPUNIT_TEST(testStatisticalFormulaGammaLn);
     319           1 :     CPPUNIT_TEST(testStatisticalFormulaGauss);
     320           1 :     CPPUNIT_TEST(testStatisticalFormulaGeoMean);
     321           1 :     CPPUNIT_TEST(testStatisticalFormulaHarMean);
     322           1 :     CPPUNIT_TEST(testFinancialCoupdaybsFormula);
     323           1 :     CPPUNIT_TEST(testFinacialDollardeFormula);
     324           1 :     CPPUNIT_TEST(testCompilerString);
     325           1 :     CPPUNIT_TEST(testCompilerInEq);
     326           1 :     CPPUNIT_TEST(testFinacialDollarfrFormula);
     327           1 :     CPPUNIT_TEST(testFinacialSYDFormula);
     328           1 :     CPPUNIT_TEST(testStatisticalFormulaCorrel);
     329           1 :     CPPUNIT_TEST(testFinancialCoupdaysFormula);
     330           1 :     CPPUNIT_TEST(testFinancialCoupdaysncFormula);
     331           1 :     CPPUNIT_TEST(testFinacialDISCFormula);
     332           1 :     CPPUNIT_TEST(testFinacialINTRATEFormula);
     333           1 :     CPPUNIT_TEST(testMathFormulaCos);
     334           1 :     CPPUNIT_TEST(testStatisticalFormulaNegbinomdist);
     335           1 :     CPPUNIT_TEST(testStatisticalFormulaRsq);
     336           1 :     CPPUNIT_TEST(testStatisticalFormulaPearson);
     337           1 :     CPPUNIT_TEST(testMathFormulaCsc);
     338           1 :     CPPUNIT_TEST(testFinacialPriceMatFormula);
     339           1 :     CPPUNIT_TEST(testFinacialXNPVFormula);
     340           1 :     CPPUNIT_TEST(testFinacialFormulaReceived);
     341           1 :     CPPUNIT_TEST(testFinancialFormulaCumipmt);
     342           1 :     CPPUNIT_TEST(testFinancialFormulaCumprinc);
     343           1 :     CPPUNIT_TEST(testFinacialRRIFormula);
     344           1 :     CPPUNIT_TEST(testFinacialEFFECT_ADDFormula);
     345           1 :     CPPUNIT_TEST(testFinacialNominalFormula);
     346           1 :     CPPUNIT_TEST(testFinacialTBILLEQFormula);
     347           1 :     CPPUNIT_TEST(testFinacialTBILLPRICEFormula);
     348           1 :     CPPUNIT_TEST(testFinacialTBILLYIELDFormula);
     349           1 :     CPPUNIT_TEST(testFinacialYIELDFormula);
     350           1 :     CPPUNIT_TEST(testFinacialYIELDDISCFormula);
     351           1 :     CPPUNIT_TEST(testFinacialYIELDMATFormula);
     352           1 :     CPPUNIT_TEST(testFinacialPPMTFormula);
     353           1 :     CPPUNIT_TEST(testFinacialPMTFormula);
     354           1 :     CPPUNIT_TEST(testFinancialISPMTFormula);
     355           1 :     CPPUNIT_TEST(testFinacialPriceFormula);
     356           1 :     CPPUNIT_TEST(testFinancialDurationFormula);
     357           1 :     CPPUNIT_TEST(testFinancialCoupnumFormula);
     358           1 :     CPPUNIT_TEST(testMathFormulaSinh);
     359           1 :     CPPUNIT_TEST(testMathFormulaAbs);
     360           1 :     CPPUNIT_TEST(testFinacialPVFormula);
     361           1 :     CPPUNIT_TEST(testMathFormulaSin);
     362           1 :     CPPUNIT_TEST(testMathFormulaTan);
     363           1 :     CPPUNIT_TEST(testMathFormulaTanH);
     364           1 :     CPPUNIT_TEST(testStatisticalFormulaStandard);
     365           1 :     CPPUNIT_TEST(testStatisticalFormulaWeibull);
     366           1 :     CPPUNIT_TEST(testStatisticalFormulaMedian);
     367           1 :     CPPUNIT_TEST(testFinancialDuration_ADDFormula);
     368           1 :     CPPUNIT_TEST(testFinancialAmordegrcFormula);
     369           1 :     CPPUNIT_TEST(testFinancialAmorlincFormula);
     370           1 :     CPPUNIT_TEST(testFinancialDDBFormula);
     371           1 :     CPPUNIT_TEST(testFinancialFVFormula);
     372           1 :     CPPUNIT_TEST(testFinancialMDurationFormula);
     373           1 :     CPPUNIT_TEST(testMathSumIfsFormula);
     374           1 :     CPPUNIT_TEST(testFinancialVDBFormula);
     375           1 :     CPPUNIT_TEST(testStatisticalFormulaKurt);
     376           1 :     CPPUNIT_TEST(testFinacialNPERFormula);
     377           1 :     CPPUNIT_TEST(testStatisticalFormulaNormdist);
     378           1 :     CPPUNIT_TEST(testMathFormulaArcCos);
     379           1 :     CPPUNIT_TEST(testMathFormulaSqrt);
     380           1 :     CPPUNIT_TEST(testMathFormulaArcCosHyp);
     381           1 :     CPPUNIT_TEST(testFinancialXirrFormula);
     382           1 :     CPPUNIT_TEST(testFinacialNPVFormula);
     383           1 :     CPPUNIT_TEST(testStatisticalFormulaNormsdist);
     384           1 :     CPPUNIT_TEST(testStatisticalFormulaNorminv);
     385           1 :     CPPUNIT_TEST(testStatisticalFormulaNormsinv);
     386           1 :     CPPUNIT_TEST(testStatisticalFormulaPermut);
     387           1 :     CPPUNIT_TEST(testStatisticalFormulaPermutation);
     388           1 :     CPPUNIT_TEST(testStatisticalFormulaPhi);
     389           1 :     CPPUNIT_TEST(testFinancialIPMTFormula);
     390           1 :     CPPUNIT_TEST(testStatisticalFormulaConfidence);
     391           1 :     CPPUNIT_TEST(testStatisticalFormulaIntercept);
     392           1 :     CPPUNIT_TEST(testFinacialODDLPRICEFormula);
     393           1 :     CPPUNIT_TEST(testFinacialOddlyieldFormula);
     394           1 :     CPPUNIT_TEST(testFinacialPriceDiscFormula);
     395           1 :     CPPUNIT_TEST(testFinancialDBFormula);
     396           1 :     CPPUNIT_TEST(testFinancialCouppcdFormula);
     397           1 :     CPPUNIT_TEST(testFinancialCoupncdFormula);
     398           1 :     CPPUNIT_TEST(testFinancialAccrintFormula);
     399           1 :     CPPUNIT_TEST(testStatisticalFormulaLogInv);
     400           1 :     CPPUNIT_TEST(testMathFormulaArcCot);
     401           1 :     CPPUNIT_TEST(testMathFormulaCosh);
     402           1 :     CPPUNIT_TEST(testStatisticalFormulaCritBinom);
     403           1 :     CPPUNIT_TEST(testMathFormulaArcCotHyp);
     404           1 :     CPPUNIT_TEST(testMathFormulaArcSin);
     405           1 :     CPPUNIT_TEST(testMathFormulaArcSinHyp);
     406           1 :     CPPUNIT_TEST(testMathFormulaArcTan);
     407           1 :     CPPUNIT_TEST(testMathFormulaArcTanHyp);
     408           1 :     CPPUNIT_TEST(testMathFormulaBitAnd);
     409           1 :     CPPUNIT_TEST(testStatisticalFormulaForecast);
     410           1 :     CPPUNIT_TEST(testStatisticalFormulaLogNormDist);
     411           1 :     CPPUNIT_TEST(testStatisticalFormulaGammaDist);
     412           1 :     CPPUNIT_TEST(testMathFormulaLN);
     413           1 :     CPPUNIT_TEST(testMathFormulaRound);
     414           1 :     CPPUNIT_TEST(testMathFormulaCot);
     415           1 :     CPPUNIT_TEST(testMathFormulaCoth);
     416           1 :     CPPUNIT_TEST(testFinacialNPER1Formula);
     417           1 :     CPPUNIT_TEST(testStatisticalFormulaFDist);
     418           1 :     CPPUNIT_TEST(testStatisticalFormulaVar);
     419           1 :     CPPUNIT_TEST(testStatisticalFormulaChiDist);
     420           1 :     CPPUNIT_TEST(testMathFormulaPower);
     421           1 :     CPPUNIT_TEST(testMathFormulaOdd);
     422           1 :     CPPUNIT_TEST(testStatisticalFormulaChiSqDist);
     423           1 :     CPPUNIT_TEST(testStatisticalFormulaChiSqInv);
     424           1 :     CPPUNIT_TEST(testStatisticalFormulaGammaInv);
     425           1 :     CPPUNIT_TEST(testMathFormulaFloor);
     426           1 :     CPPUNIT_TEST(testStatisticalFormulaFInv);
     427           1 :     CPPUNIT_TEST(testStatisticalFormulaFTest);
     428           1 :     CPPUNIT_TEST(testStatisticalFormulaB);
     429           1 :     CPPUNIT_TEST(testStatisticalFormulaBetaDist);
     430           1 :     CPPUNIT_TEST(testMathFormulaCscH);
     431           1 :     CPPUNIT_TEST(testMathFormulaExp);
     432           1 :     CPPUNIT_TEST(testMathFormulaLog10);
     433           1 :     CPPUNIT_TEST(testStatisticalFormulaExpondist);
     434           1 :     CPPUNIT_TEST(testMathAverageIfsFormula);
     435           1 :     CPPUNIT_TEST(testMathCountIfsFormula);
     436           1 :     CPPUNIT_TEST(testMathFormulaCombina);
     437           1 :     CPPUNIT_TEST(testMathFormulaEven);
     438           1 :     CPPUNIT_TEST(testMathFormulaLog);
     439           1 :     CPPUNIT_TEST(testMathFormulaMod);
     440           1 :     CPPUNIT_TEST(testMathFormulaTrunc);
     441           1 :     CPPUNIT_TEST(testStatisticalFormulaSkew);
     442           1 :     CPPUNIT_TEST(testMathFormulaArcTan2);
     443           1 :     CPPUNIT_TEST(testMathFormulaBitOr);
     444           1 :     CPPUNIT_TEST(testMathFormulaBitLshift);
     445           1 :     CPPUNIT_TEST(testMathFormulaBitRshift);
     446           1 :     CPPUNIT_TEST(testMathFormulaBitXor);
     447           1 :     CPPUNIT_TEST(testStatisticalFormulaChiInv);
     448           1 :     CPPUNIT_TEST(testStatisticalFormulaPoisson);
     449           1 :     CPPUNIT_TEST(testMathFormulaSumSQ);
     450           1 :     CPPUNIT_TEST(testStatisticalFormulaSkewp);
     451           1 :     CPPUNIT_TEST(testMathFormulaSqrtPi);
     452           1 :     CPPUNIT_TEST(testStatisticalFormulaBinomDist);
     453           1 :     CPPUNIT_TEST(testStatisticalFormulaVarP);
     454           1 :     CPPUNIT_TEST(testMathFormulaCeil);
     455             :     // This test fails MacOS 10.8. Disabled temporarily
     456             :     // CPPUNIT_TEST(testMathFormulaKombin);
     457           1 :     CPPUNIT_TEST(testStatisticalFormulaDevSq);
     458           1 :     CPPUNIT_TEST(testStatisticalFormulaStDev);
     459           1 :     CPPUNIT_TEST(testStatisticalFormulaSlope);
     460           1 :     CPPUNIT_TEST(testStatisticalFormulaSTEYX);
     461           1 :     CPPUNIT_TEST(testStatisticalFormulaZTest);
     462           1 :     CPPUNIT_TEST(testMathFormulaPi);
     463           1 :     CPPUNIT_TEST(testMathFormulaRandom);
     464           1 :     CPPUNIT_TEST(testMathFormulaConvert);
     465           1 :     CPPUNIT_TEST(testMathFormulaProduct);
     466           1 :     CPPUNIT_TEST(testStatisticalFormulaHypGeomDist);
     467           1 :     CPPUNIT_TEST(testArrayFormulaSumX2MY2);
     468           1 :     CPPUNIT_TEST(testArrayFormulaSumX2PY2);
     469           1 :     CPPUNIT_TEST(testStatisticalFormulaBetainv);
     470           1 :     CPPUNIT_TEST(testStatisticalFormulaTTest);
     471           1 :     CPPUNIT_TEST(testStatisticalFormulaTDist);
     472           1 :     CPPUNIT_TEST(testStatisticalFormulaTInv);
     473           1 :     CPPUNIT_TEST(testArrayFormulaSumXMY2);
     474           1 :     CPPUNIT_TEST(testStatisticalFormulaStDevP);
     475           1 :     CPPUNIT_TEST(testStatisticalFormulaCovar);
     476           1 :     CPPUNIT_TEST(testLogicalFormulaAnd);
     477           1 :     CPPUNIT_TEST(testMathFormulaSumProduct);
     478           1 :     CPPUNIT_TEST(testMathFormulaSumProduct2);
     479           1 :     CPPUNIT_TEST(testStatisticalParallelCountBug);
     480           1 :     CPPUNIT_TEST(testSpreadSheetFormulaVLookup);
     481           1 :     CPPUNIT_TEST(testLogicalFormulaOr);
     482           1 :     CPPUNIT_TEST(testLogicalFormulaNot);
     483           1 :     CPPUNIT_TEST(testLogicalFormulaXor);
     484           1 :     CPPUNIT_TEST(testDatabaseFormulaDmax);
     485           1 :     CPPUNIT_TEST(testDatabaseFormulaDmin);
     486           1 :     CPPUNIT_TEST(testDatabaseFormulaDproduct);
     487           1 :     CPPUNIT_TEST(testDatabaseFormulaDaverage);
     488           1 :     CPPUNIT_TEST(testDatabaseFormulaDstdev);
     489           1 :     CPPUNIT_TEST(testDatabaseFormulaDstdevp);
     490           1 :     CPPUNIT_TEST(testDatabaseFormulaDsum);
     491           1 :     CPPUNIT_TEST(testDatabaseFormulaDvar);
     492           1 :     CPPUNIT_TEST(testDatabaseFormulaDvarp);
     493           1 :     CPPUNIT_TEST(testMathFormulaAverageIf);
     494           1 :     CPPUNIT_TEST(testDatabaseFormulaDcount);
     495           1 :     CPPUNIT_TEST(testDatabaseFormulaDcountA);
     496           1 :     CPPUNIT_TEST(testMathFormulaDegrees);
     497           1 :     CPPUNIT_TEST(testMathFormulaRoundUp);
     498           1 :     CPPUNIT_TEST(testMathFormulaRoundDown);
     499           1 :     CPPUNIT_TEST(testMathFormulaInt);
     500           1 :     CPPUNIT_TEST(testMathFormulaRadians);
     501           1 :     CPPUNIT_TEST(testMathFormulaCountIf);
     502           1 :     CPPUNIT_TEST(testMathFormulaIsEven);
     503           1 :     CPPUNIT_TEST(testMathFormulaIsOdd);
     504           1 :     CPPUNIT_TEST(testMathFormulaFact);
     505           1 :     CPPUNIT_TEST(testStatisticalFormulaMaxa);
     506           1 :     CPPUNIT_TEST(testStatisticalFormulaMina);
     507           1 :     CPPUNIT_TEST(testStatisticalFormulaCountA);
     508           1 :     CPPUNIT_TEST(testStatisticalFormulaAverageA);
     509           1 :     CPPUNIT_TEST(testStatisticalFormulaVarA);
     510           1 :     CPPUNIT_TEST(testStatisticalFormulaVarPA);
     511           1 :     CPPUNIT_TEST(testStatisticalFormulaStDevA);
     512           1 :     CPPUNIT_TEST(testStatisticalFormulaStDevPA);
     513           1 :     CPPUNIT_TEST(testMathFormulaSEC);
     514           1 :     CPPUNIT_TEST(testMathFormulaSECH);
     515           1 :     CPPUNIT_TEST(testMathFormulaMROUND);
     516           1 :     CPPUNIT_TEST(testMathFormulaQuotient);
     517           1 :     CPPUNIT_TEST(testMathFormulaSeriesSum);
     518           1 :     CPPUNIT_TEST(testMathFormulaSumIf);
     519           1 :     CPPUNIT_TEST(testAddInFormulaBesseLJ);
     520           1 :     CPPUNIT_TEST(testNegSub);
     521           1 :     CPPUNIT_TEST(testStatisticalFormulaAvedev);
     522           1 :     CPPUNIT_TEST(testMathFormulaAverageIf_Mix);
     523           1 :     CPPUNIT_TEST(testStatisticalFormulaKurt1);
     524           1 :     CPPUNIT_TEST(testStatisticalFormulaHarMean1);
     525           1 :     CPPUNIT_TEST(testStatisticalFormulaVarA1);
     526           1 :     CPPUNIT_TEST(testStatisticalFormulaVarPA1);
     527           1 :     CPPUNIT_TEST(testStatisticalFormulaStDevA1);
     528           1 :     CPPUNIT_TEST(testStatisticalFormulaStDevPA1);
     529           1 :     CPPUNIT_TEST(testFinancialMDurationFormula1);
     530           5 :     CPPUNIT_TEST_SUITE_END();
     531             : 
     532             : private:
     533             :     uno::Reference<uno::XInterface> m_xCalcComponent;
     534             : 
     535             :     // Test env variables and methods
     536             :     ScDocShellRef xDocSh;
     537             :     ScDocShellRef xDocShRes;
     538             :     bool initTestEnv(const OUString& fileName, sal_Int32 nFormat,
     539             :               bool bReadWrite);
     540             : };
     541             : 
     542         223 : bool ScOpenCLTest::initTestEnv(const OUString& fileName, sal_Int32 nFormat,
     543             :     bool bReadWrite)
     544             : {
     545         223 :     if(!detectOpenCLDevice())
     546         223 :         return false;
     547             : 
     548           0 :     xDocSh = loadDoc(fileName, nFormat, bReadWrite);
     549           0 :     CPPUNIT_ASSERT_MESSAGE("Failed to load document.", xDocSh.Is());
     550           0 :     enableOpenCL();
     551             : 
     552           0 :     xDocShRes = loadDoc(fileName, nFormat, bReadWrite);
     553           0 :     CPPUNIT_ASSERT_MESSAGE("Failed to load document.", xDocShRes.Is());
     554             : 
     555           0 :     return true;
     556             : }
     557             : 
     558           0 : bool ScOpenCLTest::load(const OUString &rFilter, const OUString &rURL,
     559             :     const OUString &rUserData, SfxFilterFlags nFilterFlags,
     560             :         SotClipboardFormatId nClipboardID, unsigned int nFilterVersion)
     561             : {
     562             :     ScDocShellRef xDocShRef = ScBootstrapFixture::load(rURL, rFilter, rUserData,
     563           0 :         OUString(), nFilterFlags, nClipboardID, nFilterVersion );
     564           0 :     bool bLoaded = xDocShRef.Is();
     565             :     //reference counting of ScDocShellRef is very confused.
     566           0 :     if (bLoaded)
     567           0 :         xDocShRef->DoClose();
     568           0 :     return bLoaded;
     569             : }
     570             : 
     571         223 : bool ScOpenCLTest::detectOpenCLDevice()
     572             : {
     573         223 :     sc::FormulaGroupInterpreter::enableOpenCL_UnitTestsOnly();
     574         223 :     return sc::FormulaGroupInterpreter::switchOpenCLDevice(OUString(),true);
     575             : }
     576             : 
     577           0 : void ScOpenCLTest::enableOpenCL()
     578             : {
     579           0 :     sc::FormulaGroupInterpreter::enableOpenCL_UnitTestsOnly();
     580           0 : }
     581             : 
     582           1 : void ScOpenCLTest::testCompilerHorizontal()
     583             : {
     584           1 :     if(!initTestEnv("opencl/compiler/horizontal.", ODS, false))
     585           2 :         return;
     586           0 :     ScDocument& rDoc = xDocSh->GetDocument();
     587           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
     588           0 :     rDoc.CalcAll();
     589             : 
     590             :     // Check the results of formula cells in the shared formula range.
     591           0 :     for (SCROW i = 1; i < 5; ++i)
     592             :     {
     593           0 :         double fLibre = rDoc.GetValue(ScAddress(12, i, 0));
     594           0 :         double fExcel = rDocRes.GetValue(ScAddress(12, i, 0));
     595           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
     596           0 :         fLibre = rDoc.GetValue(ScAddress(13, i, 0));
     597           0 :         fExcel = rDocRes.GetValue(ScAddress(13, i, 0));
     598           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
     599           0 :         fLibre = rDoc.GetValue(ScAddress(14, i, 0));
     600           0 :         fExcel = rDocRes.GetValue(ScAddress(14, i, 0));
     601           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
     602             :     }
     603             : }
     604             : 
     605           1 : void ScOpenCLTest::testCompilerNested()
     606             : {
     607           1 :     if(!initTestEnv("opencl/compiler/nested.", ODS, false))
     608           2 :         return;
     609           0 :     ScDocument& rDoc = xDocSh->GetDocument();
     610           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
     611           0 :     rDoc.CalcAll();
     612             : 
     613             :     // Check the results of formula cells in the shared formula range.
     614           0 :     for (SCROW i = 1; i < 5; ++i)
     615             :     {
     616           0 :         double fLibre = rDoc.GetValue(ScAddress(2, i, 0));
     617           0 :         double fExcel = rDocRes.GetValue(ScAddress(2, i, 0));
     618           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
     619             :     }
     620             : }
     621             : 
     622           1 : void ScOpenCLTest::testCompilerString()
     623             : {
     624           1 :     if(!initTestEnv("opencl/compiler/string.", ODS, false))
     625           2 :         return;
     626           0 :     ScDocument& rDoc = xDocSh->GetDocument();
     627           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
     628           0 :     rDoc.CalcAll();
     629             : 
     630             :     // Check the results of formula cells in the shared formula range.
     631           0 :     for (SCROW i = 1; i < 5; ++i)
     632             :     {
     633           0 :         double fLibre = rDoc.GetValue(ScAddress(2, i, 0));
     634           0 :         double fExcel = rDocRes.GetValue(ScAddress(2, i, 0));
     635           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
     636             : 
     637           0 :         fLibre = rDoc.GetValue(ScAddress(3, i, 0));
     638           0 :         fExcel = rDocRes.GetValue(ScAddress(3, i, 0));
     639           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
     640             :     }
     641             : }
     642             : 
     643           1 : void ScOpenCLTest::testCompilerInEq()
     644             : {
     645           1 :     if(!initTestEnv("opencl/compiler/ineq.", ODS, false))
     646           2 :         return;
     647           0 :     ScDocument& rDoc = xDocSh->GetDocument();
     648           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
     649           0 :     rDoc.CalcAll();
     650             : 
     651             :     // Check the results of formula cells in the shared formula range.
     652           0 :     for (SCROW i = 1; i < 7; ++i)
     653             :     {
     654           0 :         double fLibre = rDoc.GetValue(ScAddress(3, i, 0));
     655           0 :         double fExcel = rDocRes.GetValue(ScAddress(3, i, 0));
     656           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
     657             :     }
     658             : }
     659             : 
     660             : #if 0
     661             : void ScOpenCLTest::testSharedFormulaXLSStockHistory()
     662             : {
     663             :     if(!initTestEnv("stock-history.", XLS, false))
     664             :         return;
     665             :     ScDocument& rDoc = xDocSh->GetDocument();
     666             :     ScDocument& rDocRes = xDocShRes->GetDocument();
     667             :     xDocSh->DoHardRecalc(true);
     668             : 
     669             :     // Check the results of formula cells in the shared formula range.
     670             :     for (SCROW i = 33; i < 44; ++i)
     671             :     {   // Cell H34:H44 in S&P 500 (tab 1)
     672             :         double fLibre = rDoc.GetValue(ScAddress(7, i, 1));
     673             :         double fExcel = rDocRes.GetValue(ScAddress(7, i, 1));
     674             :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, 0.0001*fExcel);
     675             :     }
     676             : 
     677             :     for (SCROW i = 33; i < 44; ++i)
     678             :     {   // Cell J34:J44 in S&P 500 (tab 1)
     679             :         double fLibre = rDoc.GetValue(ScAddress(9, i, 1));
     680             :         double fExcel = rDocRes.GetValue(ScAddress(9, i, 1));
     681             :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, 0.0001*fExcel);
     682             :     }
     683             : }
     684             : 
     685             : void ScOpenCLTest::testSharedFormulaXLSGroundWater()
     686             : {
     687             :     if(!initTestEnv("ground-water-daily.", XLS, false))
     688             :         return;
     689             :     ScDocument& rDoc = xDocSh->GetDocument();
     690             :     ScDocument& rDocRes = xDocShRes->GetDocument();
     691             :     xDocSh->DoHardRecalc(true);
     692             : 
     693             :     // Check the results of formula cells in the shared formula range.
     694             :     for (SCROW i = 5; i <= 77; ++i)
     695             :     {
     696             :         double fLibre = rDoc.GetValue(ScAddress(11,i,1));
     697             :         double fExcel = rDocRes.GetValue(ScAddress(11,i,1));
     698             :         ASSERT_DOUBLES_EQUAL(fExcel, fLibre);
     699             :     }
     700             : 
     701             : 
     702             : }
     703             : #endif
     704             : 
     705           1 : void ScOpenCLTest::testSharedFormulaXLS()
     706             : {
     707           1 :     if(!initTestEnv("sum_ex.", XLS, false))
     708           2 :         return;
     709           0 :     ScDocument& rDoc = xDocSh->GetDocument();
     710           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
     711           0 :     rDoc.CalcAll();
     712             : 
     713             :     // Check the results of formula cells in the shared formula range.
     714           0 :     for (SCROW i = 0; i < 5; ++i)
     715             :     {
     716           0 :         double fLibre = rDoc.GetValue(ScAddress(2, i, 0));
     717           0 :         double fExcel = rDocRes.GetValue(ScAddress(2, i, 0));
     718           0 :         ASSERT_DOUBLES_EQUAL(fExcel, fLibre);
     719             :     }
     720             : 
     721           0 :     for (SCROW i = 6; i < 14; ++i)
     722             :     {
     723           0 :         double fLibre = rDoc.GetValue(ScAddress(2, i, 0));
     724           0 :         double fExcel = rDocRes.GetValue(ScAddress(2, i, 0));
     725           0 :         ASSERT_DOUBLES_EQUAL(fExcel, fLibre);
     726             :     }
     727             : 
     728           0 :     for (SCROW i = 15; i < 18; ++i)
     729             :     {
     730           0 :         double fLibre = rDoc.GetValue(ScAddress(2, i, 0));
     731           0 :         double fExcel = rDocRes.GetValue(ScAddress(2, i, 0));
     732           0 :         ASSERT_DOUBLES_EQUAL(fExcel, fLibre);
     733             :     }
     734             : 
     735           0 :     for (SCROW i = 19; i < 22; ++i)
     736             :     {
     737           0 :         double fLibre = rDoc.GetValue(ScAddress(2, i, 0));
     738           0 :         double fExcel = rDocRes.GetValue(ScAddress(2, i, 0));
     739           0 :         ASSERT_DOUBLES_EQUAL(fExcel, fLibre);
     740             :     }
     741             : 
     742           0 :     for (SCROW i = 23; i < 25; ++i)
     743             :     {
     744           0 :         double fLibre = rDoc.GetValue(ScAddress(2, i, 0));
     745             :         //double fExcel = rDocRes.GetValue(ScAddress(2, i, 0));
     746             :         // There seems to be a bug in LibreOffice beta
     747           0 :         ASSERT_DOUBLES_EQUAL(/*fExcel*/ 60.0, fLibre);
     748             :     }
     749             : 
     750           0 :     for (SCROW i = 25; i < 27; ++i)
     751             :     {
     752           0 :         double fLibre = rDoc.GetValue(ScAddress(2, i, 0));
     753           0 :         double fExcel = rDocRes.GetValue(ScAddress(2, i, 0));
     754           0 :         ASSERT_DOUBLES_EQUAL(fExcel, fLibre);
     755             :     }
     756             : 
     757           0 :     for (SCROW i = 28; i < 35; ++i)
     758             :     {
     759           0 :         double fLibre = rDoc.GetValue(ScAddress(2, i, 0));
     760           0 :         double fExcel = rDocRes.GetValue(ScAddress(2, i, 0));
     761           0 :         ASSERT_DOUBLES_EQUAL(fExcel, fLibre);
     762             :     }
     763             : 
     764             :     // workaround for a Calc beta bug
     765           0 :     ASSERT_DOUBLES_EQUAL(25.0, rDoc.GetValue(ScAddress(2, 35, 0)));
     766           0 :     ASSERT_DOUBLES_EQUAL(24.0, rDoc.GetValue(ScAddress(2, 36, 0)));
     767             : 
     768           0 :     for (SCROW i = 38; i < 43; ++i)
     769             :     {
     770           0 :         double fLibre = rDoc.GetValue(ScAddress(2, i, 0));
     771           0 :         double fExcel = rDocRes.GetValue(ScAddress(2, i, 0));
     772           0 :         ASSERT_DOUBLES_EQUAL(fExcel, fLibre);
     773             :     }
     774             : 
     775           0 :     for (SCROW i = 5; i < 10; ++i)
     776             :     {
     777           0 :         double fLibre = rDoc.GetValue(ScAddress(5, i, 1));
     778           0 :         double fExcel = rDocRes.GetValue(ScAddress(5, i, 1));
     779           0 :         ASSERT_DOUBLES_EQUAL(fExcel, fLibre);
     780             :     }
     781             : 
     782           0 :     for (SCROW i = 5; i < 10; ++i)
     783             :     {
     784           0 :         for (SCCOL j = 6; j < 11; ++j)
     785             :         {
     786           0 :             double fLibre = rDoc.GetValue(ScAddress(j, i, 1));
     787           0 :             double fExcel = rDocRes.GetValue(ScAddress(j, i, 1));
     788           0 :             CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre,
     789           0 :                 fabs(fExcel*0.0001));
     790             :         }
     791             :     }
     792             : }
     793             : 
     794           1 : void ScOpenCLTest::testMathFormulaCos()
     795             : {
     796           1 :     if(!initTestEnv("opencl/math/cos.", XLS, false))
     797           2 :         return;
     798           0 :     ScDocument& rDoc = xDocSh->GetDocument();
     799           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
     800           0 :     rDoc.CalcAll();
     801             : 
     802           0 :     for (SCROW i = 0; i <= 15; ++i)
     803             :     {
     804           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
     805           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
     806           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
     807             :     }
     808             : }
     809             : 
     810           1 : void ScOpenCLTest::testMathFormulaSinh()
     811             : {
     812           1 :     if(!initTestEnv("opencl/math/sinh.", XLS, false))
     813           2 :         return;
     814           0 :     ScDocument& rDoc = xDocSh->GetDocument();
     815           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
     816           0 :     xDocSh->DoHardRecalc(true);
     817             : 
     818           0 :     for (SCROW i = 0; i <= 15; ++i)
     819             :     {
     820           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
     821           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
     822           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
     823             :     }
     824             : }
     825             : 
     826           1 : void ScOpenCLTest::testMathFormulaPi()
     827             : {
     828           1 :     if(!initTestEnv("opencl/math/pi.", XLS, false))
     829           2 :         return;
     830           0 :     ScDocument& rDoc = xDocSh->GetDocument();
     831           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
     832           0 :     rDoc.CalcAll();
     833             : 
     834           0 :     for (SCROW i = 0; i <= 15; ++i)
     835             :     {
     836           0 :         double fLibre = rDoc.GetValue(ScAddress(0,i,0));
     837           0 :         double fExcel = rDocRes.GetValue(ScAddress(0,i,0));
     838           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
     839             :     }
     840             : }
     841             : 
     842           1 : void ScOpenCLTest::testMathFormulaRandom()
     843             : {
     844           1 :     if(!initTestEnv("opencl/math/random.", XLS, false))
     845           2 :         return;
     846           0 :     ScDocument& rDoc = xDocSh->GetDocument();
     847           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
     848           0 :     rDoc.CalcAll();
     849             : 
     850           0 :     for (SCROW i = 0; i <= 15; ++i)
     851             :     {
     852           0 :         double fLibre = rDoc.GetValue(ScAddress(0,i,0));
     853           0 :         double fExcel = rDocRes.GetValue(ScAddress(0,i,0));
     854             :         //because the random numbers will always change,so give the test "true"
     855             :         (void) fLibre;
     856             :         (void) fExcel;
     857           0 :         CPPUNIT_ASSERT(true);
     858             :     }
     859             : }
     860           1 : void ScOpenCLTest::testFinacialFormula()
     861             : {
     862           1 :     if(!initTestEnv("opencl/financial/general.", XLS, false))
     863           2 :         return;
     864           0 :     ScDocument& rDoc = xDocSh->GetDocument();
     865           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
     866           0 :     rDoc.CalcAll();
     867             : 
     868             :     // Check the results of formula cells in the shared formula range.
     869           0 :     for (SCROW i = 1; i <= 10; ++i)
     870             :     {
     871           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
     872           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
     873           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
     874             :     }
     875             : 
     876           0 :     for (SCROW i = 1; i <= 10; ++i)
     877             :     {
     878           0 :         double fLibre = rDoc.GetValue(ScAddress(6,i,1));
     879           0 :         double fExcel = rDocRes.GetValue(ScAddress(6,i,1));
     880           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
     881             :     }
     882             : 
     883           0 :     for (SCROW i = 1; i <= 10; ++i)
     884             :     {
     885           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,2));
     886           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,2));
     887           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
     888             :     }
     889             : 
     890           0 :     for (SCROW i = 1; i <= 10; ++i)
     891             :     {
     892           0 :         double fLibre = rDoc.GetValue(ScAddress(6,i,3));
     893           0 :         double fExcel = rDocRes.GetValue(ScAddress(6,i,3));
     894           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
     895             :     }
     896             : 
     897           0 :     for (SCROW i = 0; i <= 9; ++i)
     898             :     {
     899           0 :         double fLibre = rDoc.GetValue(ScAddress(3,i,4));
     900           0 :         double fExcel = rDocRes.GetValue(ScAddress(3,i,4));
     901           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
     902             :     }
     903             : 
     904           0 :     for (SCROW i = 0; i <= 9; ++i)
     905             :     {
     906           0 :         double fLibre = rDoc.GetValue(ScAddress(3,i,5));
     907           0 :         double fExcel = rDocRes.GetValue(ScAddress(3,i,5));
     908           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
     909             :     }
     910             : 
     911           0 :     for (SCROW i = 0; i < 10; ++i)
     912             :     {
     913           0 :         double fLibre = rDoc.GetValue(ScAddress(5,i,6));
     914           0 :         double fExcel = rDocRes.GetValue(ScAddress(5,i,6));
     915           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
     916             :     }
     917             : 
     918           0 :     for (SCROW i = 1; i <= 9; ++i)
     919             :     {
     920           0 :         double fLibre = rDoc.GetValue(ScAddress(3,i,7));
     921           0 :         double fExcel = rDocRes.GetValue(ScAddress(3,i,7));
     922           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
     923             :     }
     924             : 
     925           0 :     for (SCROW i = 1; i <= 10; ++i)
     926             :     {
     927           0 :         double fLibre = rDoc.GetValue(ScAddress(3,i,8));
     928           0 :         double fExcel = rDocRes.GetValue(ScAddress(3,i,8));
     929           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
     930             :     }
     931             : 
     932           0 :     for (SCROW i = 1; i <= 9; ++i)
     933             :     {
     934           0 :         double fLibre = rDoc.GetValue(ScAddress(3,i,9));
     935           0 :         double fExcel = rDocRes.GetValue(ScAddress(3,i,9));
     936           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
     937             :     }
     938             : 
     939           0 :     for (SCROW i = 1; i <= 10; ++i)
     940             :     {
     941           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,10));
     942           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,10));
     943           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
     944             :     }
     945             : 
     946           0 :     for (SCROW i = 1; i <= 10; ++i)
     947             :     {
     948           0 :         double fLibre = rDoc.GetValue(ScAddress(7,i,11));
     949           0 :         double fExcel = rDocRes.GetValue(ScAddress(7,i,11));
     950           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
     951             :     }
     952             : 
     953           0 :     for (SCROW i = 1; i <= 10; ++i)
     954             :     {
     955           0 :         double fLibre = rDoc.GetValue(ScAddress(5,i,12));
     956           0 :         double fExcel = rDocRes.GetValue(ScAddress(5,i,12));
     957           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
     958             :     }
     959             : 
     960           0 :     for (SCROW i = 0; i <= 12; ++i)
     961             :     {
     962           0 :         double fLibre = rDoc.GetValue(ScAddress(6,i,13));
     963           0 :         double fExcel = rDocRes.GetValue(ScAddress(6,i,13));
     964           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
     965             :     }
     966             : 
     967           0 :     for (SCROW i = 1; i <= 10; ++i)
     968             :     {
     969           0 :         double fLibre = rDoc.GetValue(ScAddress(3,i,14));
     970           0 :         double fExcel = rDocRes.GetValue(ScAddress(3,i,14));
     971           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
     972             :     }
     973             : 
     974           0 :     for (SCROW i = 1; i <= 10; ++i)
     975             :     {
     976           0 :         double fLibre = rDoc.GetValue(ScAddress(6,i,15));
     977           0 :         double fExcel = rDocRes.GetValue(ScAddress(6,i,15));
     978           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
     979             :     }
     980             : 
     981           0 :     for (SCROW i = 1; i <= 10; ++i)
     982             :     {
     983           0 :         double fLibre = rDoc.GetValue(ScAddress(6,i,16));
     984           0 :         double fExcel = rDocRes.GetValue(ScAddress(6,i,16));
     985           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
     986             :     }
     987             : 
     988           0 :     for (SCROW i = 1; i <= 5; ++i)
     989             :     {
     990           0 :         double fLibre = rDoc.GetValue(ScAddress(6,i,17));
     991           0 :         double fExcel = rDocRes.GetValue(ScAddress(6,i,17));
     992           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
     993             :     }
     994             : 
     995           0 :     for (SCROW i = 0; i <= 10; ++i)
     996             :     {
     997           0 :         double fLibre = rDoc.GetValue(ScAddress(3,i,18));
     998           0 :         double fExcel = rDocRes.GetValue(ScAddress(3,i,18));
     999           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1000             :     }
    1001             : 
    1002           0 :     for (SCROW i = 0; i <= 18; ++i)
    1003             :     {
    1004           0 :         double fLibre = rDoc.GetValue(ScAddress(3,i,19));
    1005           0 :         double fExcel = rDocRes.GetValue(ScAddress(3,i,19));
    1006           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1007             :     }
    1008             : }
    1009             : 
    1010           1 : void ScOpenCLTest::testStatisticalFormulaCorrel()
    1011             : {
    1012           1 :     if(!initTestEnv("opencl/statistical/Correl.", ODS, false))
    1013           2 :         return;
    1014           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1015           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1016           0 :     rDoc.CalcAll();
    1017             : 
    1018             :     // Check the results of formula cells in the shared formula range.
    1019           0 :     for (SCROW i = 1; i <= 20; ++i)
    1020             :     {
    1021           0 :         double fLibre = rDoc.GetValue(ScAddress(3, i, 0));
    1022           0 :         double fExcel = rDocRes.GetValue(ScAddress(3, i, 0));
    1023           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1024             :     }
    1025             : }
    1026           1 : void ScOpenCLTest::testStatisticalFormulaFisher()
    1027             : {
    1028           1 :     if(!initTestEnv("opencl/statistical/Fisher.", XLS, false))
    1029           2 :         return;
    1030           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1031           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1032           0 :     rDoc.CalcAll();
    1033             : 
    1034             :     // Check the results of formula cells in the shared formula range.
    1035           0 :     for (SCROW i = 1; i <= 19; ++i)
    1036             :     {
    1037           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    1038           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    1039           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1040             :     }
    1041             : }
    1042             : 
    1043           1 : void ScOpenCLTest::testStatisticalFormulaFisherInv()
    1044             : {
    1045           1 :     if(!initTestEnv("opencl/statistical/FisherInv.", XLS, false))
    1046           2 :         return;
    1047           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1048           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1049           0 :     rDoc.CalcAll();
    1050             : 
    1051             :     // Check the results of formula cells in the shared formula range.
    1052           0 :     for (SCROW i = 1; i <= 19; ++i)
    1053             :     {
    1054           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    1055           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    1056           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1057             :     }
    1058             : }
    1059             : 
    1060           1 : void ScOpenCLTest::testStatisticalFormulaGamma()
    1061             : {
    1062           1 :     if(!initTestEnv("opencl/statistical/Gamma.", XLS, false))
    1063           2 :         return;
    1064           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1065           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1066           0 :     rDoc.CalcAll();
    1067             : 
    1068             :     // Check the results of formula cells in the shared formula range.
    1069           0 :     for (SCROW i = 1; i <= 19; ++i)
    1070             :     {
    1071           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    1072           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    1073           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1074             :     }
    1075             : }
    1076             : 
    1077           1 : void ScOpenCLTest::testFinacialFvscheduleFormula()
    1078             : {
    1079           1 :     if(!initTestEnv("opencl/financial/Fvschedule.", XLS, false))
    1080           2 :         return;
    1081           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1082           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1083           0 :     rDoc.CalcAll();
    1084             : 
    1085           0 :     for (SCROW i = 0; i <= 9; ++i)
    1086             :     {
    1087           0 :         double fLibre = rDoc.GetValue(ScAddress(2, i, 0));
    1088           0 :         double fExcel = rDocRes.GetValue(ScAddress(2, i, 0));
    1089           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1090             :     }
    1091             : }
    1092             : 
    1093           1 : void ScOpenCLTest::testMathFormulaAbs()
    1094             : {
    1095           1 :     if(!initTestEnv("opencl/math/Abs.", ODS, false))
    1096           2 :         return;
    1097           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1098           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1099           0 :     rDoc.CalcAll();
    1100             : 
    1101             :     // Verify ABS Function
    1102           0 :     for (SCROW i = 1; i <= 1000; ++i)
    1103             :     {
    1104           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    1105           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    1106           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1107             :     }
    1108             : }
    1109             : 
    1110           1 : void ScOpenCLTest::testFinacialSYDFormula()
    1111             : {
    1112           1 :     if(!initTestEnv("opencl/financial/SYD.", XLS, false))
    1113           2 :         return;
    1114           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1115           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1116           0 :     rDoc.CalcAll();
    1117             : 
    1118           0 :     for (SCROW i = 0; i <= 9; ++i)
    1119             :     {
    1120           0 :         double fLibre = rDoc.GetValue(ScAddress(4, i, 0));
    1121           0 :         double fExcel = rDocRes.GetValue(ScAddress(4, i, 0));
    1122           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1123             :     }
    1124             : }
    1125             : 
    1126             : // this test has intermittent failures on OSX
    1127             : #if !defined MACOSX
    1128           1 : void ScOpenCLTest::testFinacialIRRFormula()
    1129             : {
    1130           1 :     if(!initTestEnv("opencl/financial/IRR.", XLS, false))
    1131           2 :         return;
    1132           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1133           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1134           0 :     rDoc.CalcAll();
    1135             : 
    1136           0 :     for (SCROW i = 0; i <= 6; ++i)
    1137             :     {
    1138           0 :         double fLibre = rDoc.GetValue(ScAddress(2, i, 0));
    1139           0 :         double fExcel = rDocRes.GetValue(ScAddress(2, i, 0));
    1140           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1141             :     }
    1142             : }
    1143             : #endif
    1144             : 
    1145           1 : void ScOpenCLTest::testStatisticalFormulaGammaLn()
    1146             : {
    1147           1 :     if(!initTestEnv("opencl/statistical/GammaLn.", XLS, false))
    1148           2 :         return;
    1149           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1150           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1151           0 :     rDoc.CalcAll();
    1152             : 
    1153             :     // Check the results of formula cells in the shared formula range.
    1154           0 :     for (SCROW i = 1; i <= 19; ++i)
    1155             :     {
    1156           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    1157           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    1158           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1159             :     }
    1160             : }
    1161             : 
    1162           1 : void ScOpenCLTest::testStatisticalFormulaGauss()
    1163             : {
    1164           1 :     if(!initTestEnv("opencl/statistical/Gauss.", XLS, false))
    1165           2 :         return;
    1166           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1167           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1168           0 :     rDoc.CalcAll();
    1169             : 
    1170             :     // Check the results of formula cells in the shared formula range.
    1171           0 :     for (SCROW i = 1; i <= 19; ++i)
    1172             :     {
    1173           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    1174           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    1175           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1176             :     }
    1177             : }
    1178             : 
    1179           1 : void ScOpenCLTest::testStatisticalFormulaGeoMean()
    1180             : {
    1181           1 :     if(!initTestEnv("opencl/statistical/GeoMean.", XLS, false))
    1182           2 :         return;
    1183           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1184           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1185           0 :     rDoc.CalcAll();
    1186             : 
    1187             :     // Check the results of formula cells in the shared formula range.
    1188           0 :     for (SCROW i = 1; i <= 19; ++i)
    1189             :     {
    1190           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    1191           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    1192           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1193             :     }
    1194             : }
    1195             : 
    1196           1 : void ScOpenCLTest::testStatisticalFormulaHarMean()
    1197             : {
    1198           1 :     if(!initTestEnv("opencl/statistical/HarMean.", XLS, false))
    1199           2 :         return;
    1200           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1201           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1202           0 :     rDoc.CalcAll();
    1203             : 
    1204             :     // Check the results of formula cells in the shared formula range.
    1205           0 :     for (SCROW i = 1; i <= 19; ++i)
    1206             :     {
    1207           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    1208           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    1209           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1210             :     }
    1211             : }
    1212             : 
    1213           1 : void ScOpenCLTest::testFinacialSLNFormula()
    1214             : {
    1215           1 :     if(!initTestEnv("opencl/financial/SLN.", XLS, false))
    1216           2 :         return;
    1217           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1218           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1219           0 :     rDoc.CalcAll();
    1220             : 
    1221           0 :     for (SCROW i = 0; i <= 9; ++i)
    1222             :     {
    1223           0 :         double fLibre = rDoc.GetValue(ScAddress(3, i, 0));
    1224           0 :         double fExcel = rDocRes.GetValue(ScAddress(3, i, 0));
    1225           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1226             :     }
    1227             : }
    1228             : 
    1229           1 : void ScOpenCLTest::testFinacialMIRRFormula()
    1230             : {
    1231           1 :     if(!initTestEnv("opencl/financial/MIRR.", XLS, false))
    1232           2 :         return;
    1233           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1234           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1235           0 :     rDoc.CalcAll();
    1236             : 
    1237           0 :     for (SCROW i = 0; i <= 6; ++i)
    1238             :     {
    1239           0 :         double fLibre = rDoc.GetValue(ScAddress(3, i, 0));
    1240           0 :         double fExcel = rDocRes.GetValue(ScAddress(3, i, 0));
    1241           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1242             :     }
    1243             : }
    1244             : 
    1245           1 : void ScOpenCLTest::testFinancialCoupdaybsFormula()
    1246             : {
    1247           1 :     if(!initTestEnv("opencl/financial/Coupdaybs.", XLS, false))
    1248           2 :         return;
    1249           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1250           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1251           0 :     rDoc.CalcAll();
    1252             : 
    1253           0 :     for (SCROW i = 1; i <=10; ++i)
    1254             :     {
    1255           0 :         double fLibre = rDoc.GetValue(ScAddress(4, i, 0));
    1256           0 :         double fExcel = rDocRes.GetValue(ScAddress(4, i, 0));
    1257           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1258             :     }
    1259             : }
    1260             : 
    1261           1 : void ScOpenCLTest::testFinacialDollardeFormula()
    1262             : {
    1263           1 :     if(!initTestEnv("opencl/financial/Dollarde.", XLS, false))
    1264           2 :         return;
    1265           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1266           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1267           0 :     rDoc.CalcAll();
    1268             : 
    1269           0 :     for (SCROW i = 0; i <= 9; ++i)
    1270             :     {
    1271           0 :         double fLibre = rDoc.GetValue(ScAddress(2, i, 0));
    1272           0 :         double fExcel = rDocRes.GetValue(ScAddress(2, i, 0));
    1273           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1274             :     }
    1275             : }
    1276             : 
    1277           1 : void ScOpenCLTest::testFinancialCoupdaysFormula()
    1278             : {
    1279           1 :     if(!initTestEnv("opencl/financial/Coupdays.", XLS, false))
    1280           2 :         return;
    1281           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1282           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1283           0 :     rDoc.CalcAll();
    1284             : 
    1285           0 :     for (SCROW i = 1; i <=10; ++i)
    1286             :     {
    1287           0 :         double fLibre = rDoc.GetValue(ScAddress(4, i, 0));
    1288           0 :         double fExcel = rDocRes.GetValue(ScAddress(4, i, 0));
    1289           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1290             :     }
    1291             : 
    1292             : }
    1293             : 
    1294           1 : void ScOpenCLTest::testFinancialCoupdaysncFormula()
    1295             : {
    1296           1 :     if(!initTestEnv("opencl/financial/Coupdaysnc.", XLS, false))
    1297           2 :         return;
    1298           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1299           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1300           0 :     rDoc.CalcAll();
    1301             : 
    1302           0 :     for (SCROW i = 1; i <=10; ++i)
    1303             :     {
    1304           0 :         double fLibre = rDoc.GetValue(ScAddress(4, i, 0));
    1305           0 :         double fExcel = rDocRes.GetValue(ScAddress(4, i, 0));
    1306           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1307             :     }
    1308             : }
    1309           1 : void ScOpenCLTest::testFinacialRateFormula()
    1310             : {
    1311           1 :     if(!initTestEnv("opencl/financial/RATE.", XLS, false))
    1312           2 :         return;
    1313           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1314           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1315           0 :     rDoc.CalcAll();
    1316             : 
    1317           0 :     for (SCROW i = 1; i <= 5; ++i)
    1318             :     {
    1319           0 :         double fLibre = rDoc.GetValue(ScAddress(6, i, 0));
    1320           0 :         double fExcel = rDocRes.GetValue(ScAddress(6, i, 0));
    1321           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1322             :     }
    1323             : }
    1324             : 
    1325           1 : void ScOpenCLTest::testFinancialAccrintmFormula()
    1326             : {
    1327           1 :     if(!initTestEnv("opencl/financial/Accrintm.", XLS, false))
    1328           2 :         return;
    1329           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1330           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1331           0 :     rDoc.CalcAll();
    1332             : 
    1333           0 :     for (SCROW i = 1; i <= 10; ++i)
    1334             :     {
    1335           0 :         double fLibre = rDoc.GetValue(ScAddress(5, i, 0));
    1336           0 :         double fExcel = rDocRes.GetValue(ScAddress(5, i, 0));
    1337           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1338             :     }
    1339             : }
    1340             : 
    1341           1 : void ScOpenCLTest::testFinancialCoupnumFormula()
    1342             : {
    1343           1 :     if(!initTestEnv("opencl/financial/Coupnum.", XLS, false))
    1344           2 :         return;
    1345           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1346           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1347           0 :     rDoc.CalcAll();
    1348             : 
    1349           0 :     for (SCROW i = 0; i <= 9; ++i)
    1350             :     {
    1351           0 :         double fLibre = rDoc.GetValue(ScAddress(4, i, 0));
    1352           0 :         double fExcel = rDocRes.GetValue(ScAddress(4, i, 0));
    1353           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1354             :     }
    1355             : }
    1356             : 
    1357           1 : void ScOpenCLTest::testStatisticalFormulaNegbinomdist()
    1358             : {
    1359           1 :     if(!initTestEnv("opencl/statistical/Negbinomdist.", XLS, false))
    1360           2 :         return;
    1361           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1362           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1363           0 :     rDoc.CalcAll();
    1364             : 
    1365             :     // Check the results of formula cells in the shared formula range.
    1366           0 :     for (SCROW i = 0; i <= 9; ++i)
    1367             :     {
    1368           0 :         double fLibre = rDoc.GetValue(ScAddress(3,i,0));
    1369           0 :         double fExcel = rDocRes.GetValue(ScAddress(3,i,0));
    1370           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1371             :     }
    1372             : }
    1373             : 
    1374           1 : void ScOpenCLTest::testMathFormulaSin()
    1375             : {
    1376           1 :     if(!initTestEnv("opencl/math/sin.", XLS, false))
    1377           2 :         return;
    1378           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1379           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1380           0 :     rDoc.CalcAll();
    1381             : 
    1382           0 :     for (SCROW i = 0; i <= 15; ++i)
    1383             :     {
    1384           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    1385           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    1386           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1387             :     }
    1388             : }
    1389             : 
    1390           1 : void ScOpenCLTest::testMathFormulaSumSQ()
    1391             : {
    1392           1 :     if(!initTestEnv("opencl/math/sumsq.", XLS, false))
    1393           2 :         return;
    1394           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1395           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1396           0 :     rDoc.CalcAll();
    1397             : 
    1398           0 :     for (SCROW i = 0; i < 20; ++i)
    1399             :     {
    1400           0 :         double fLibre = rDoc.GetValue(ScAddress(5,i,0));
    1401           0 :         double fExcel = rDocRes.GetValue(ScAddress(5,i,0));
    1402           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1403             :     }
    1404             : }
    1405             : 
    1406           1 : void ScOpenCLTest::testMathFormulaTan()
    1407             : {
    1408           1 :     if(!initTestEnv("opencl/math/tan.", XLS, false))
    1409           2 :         return;
    1410           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1411           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1412           0 :     rDoc.CalcAll();
    1413             : 
    1414           0 :     for (SCROW i = 0; i <= 15; ++i)
    1415             :     {
    1416           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    1417           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    1418           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1419             :     }
    1420             : }
    1421             : 
    1422           1 : void ScOpenCLTest::testMathFormulaTanH()
    1423             : {
    1424           1 :     if(!initTestEnv("opencl/math/tanh.", XLS, false))
    1425           2 :         return;
    1426           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1427           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1428           0 :     rDoc.CalcAll();
    1429             : 
    1430           0 :     for (SCROW i = 0; i <= 15; ++i)
    1431             :     {
    1432           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    1433           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    1434           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1435             :     }
    1436             : }
    1437             : 
    1438           1 : void ScOpenCLTest::testMathFormulaSqrt()
    1439             : {
    1440           1 :     if(!initTestEnv("opencl/math/sqrt.", XLS, false))
    1441           2 :         return;
    1442           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1443           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1444           0 :     rDoc.CalcAll();
    1445             : 
    1446           0 :     for (SCROW i = 0; i <= 15; ++i)
    1447             :     {
    1448           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    1449           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    1450           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1451             :     }
    1452             : }
    1453             : 
    1454           1 : void ScOpenCLTest::testFinacialPriceFormula()
    1455             : {
    1456           1 :     if(!initTestEnv("opencl/financial/Price.", XLS, false))
    1457           2 :         return;
    1458           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1459           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1460           0 :     rDoc.CalcAll();
    1461             : 
    1462           0 :     for (SCROW i = 1; i <= 10; ++i)
    1463             :     {
    1464           0 :         double fLibre = rDoc.GetValue(ScAddress(7, i, 0));
    1465           0 :         double fExcel = rDocRes.GetValue(ScAddress(7, i, 0));
    1466           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1467             :     }
    1468             : }
    1469             : 
    1470           1 : void ScOpenCLTest::testFinacialDollarfrFormula()
    1471             : {
    1472           1 :     if(!initTestEnv("opencl/financial/Dollarfr.", XLS, false))
    1473           2 :         return;
    1474           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1475           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1476           0 :     rDoc.CalcAll();
    1477             : 
    1478           0 :     for (SCROW i = 0; i <= 9; ++i)
    1479             :     {
    1480           0 :         double fLibre = rDoc.GetValue(ScAddress(2, i, 0));
    1481           0 :         double fExcel = rDocRes.GetValue(ScAddress(2, i, 0));
    1482           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1483             :     }
    1484             : }
    1485             : 
    1486           1 : void ScOpenCLTest::testFinacialPriceDiscFormula()
    1487             : {
    1488           1 :     if(!initTestEnv("opencl/financial/PriceDisc.", XLS, false))
    1489           2 :         return;
    1490           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1491           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1492           0 :     rDoc.CalcAll();
    1493             : 
    1494           0 :     for (SCROW i = 0; i <= 10; ++i)
    1495             :     {
    1496           0 :         double fLibre = rDoc.GetValue(ScAddress(5, i, 0));
    1497           0 :         double fExcel = rDocRes.GetValue(ScAddress(5, i, 0));
    1498           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1499             :     }
    1500             : }
    1501             : 
    1502           1 : void ScOpenCLTest::testFinacialODDLPRICEFormula()
    1503             : {
    1504           1 :     if(!initTestEnv("opencl/financial/Oddlprice.", XLS, false))
    1505           2 :         return;
    1506           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1507           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1508           0 :     rDoc.CalcAll();
    1509             : 
    1510           0 :     for (SCROW i = 1; i <= 10; ++i)
    1511             :     {
    1512           0 :         double fLibre = rDoc.GetValue(ScAddress(8, i, 0));
    1513           0 :         double fExcel = rDocRes.GetValue(ScAddress(8, i, 0));
    1514           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1515             :     }
    1516             : }
    1517             : 
    1518           1 : void ScOpenCLTest:: testFinacialOddlyieldFormula()
    1519             : {
    1520           1 :     if(!initTestEnv("opencl/financial/Oddlyield.", XLS, false))
    1521           2 :         return;
    1522           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1523           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1524           0 :     rDoc.CalcAll();
    1525             : 
    1526           0 :     for (SCROW i = 0; i <= 6; ++i)
    1527             :     {
    1528           0 :         double fLibre = rDoc.GetValue(ScAddress(8, i, 0));
    1529           0 :         double fExcel = rDocRes.GetValue(ScAddress(8, i, 0));
    1530           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1531             :     }
    1532             : }
    1533             : 
    1534           1 : void ScOpenCLTest::testFinacialDISCFormula()
    1535             : {
    1536           1 :     if(!initTestEnv("opencl/financial/DISC.", XLS, false))
    1537           2 :         return;
    1538           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1539           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1540           0 :     rDoc.CalcAll();
    1541             : 
    1542           0 :     for (SCROW i = 0; i <= 9; ++i)
    1543             :     {
    1544           0 :         double fLibre = rDoc.GetValue(ScAddress(5, i, 0));
    1545           0 :         double fExcel = rDocRes.GetValue(ScAddress(5, i, 0));
    1546           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1547             :     }
    1548             : }
    1549             : 
    1550           1 : void ScOpenCLTest:: testFinacialPVFormula()
    1551             : {
    1552           1 :     if(!initTestEnv("opencl/financial/PV.", XLS, false))
    1553           2 :         return;
    1554           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1555           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1556           0 :     rDoc.CalcAll();
    1557             : 
    1558           0 :     for (SCROW i = 0; i <= 9; ++i)
    1559             :     {
    1560           0 :         double fLibre = rDoc.GetValue(ScAddress(5, i, 0));
    1561           0 :         double fExcel = rDocRes.GetValue(ScAddress(5, i, 0));
    1562           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1563             :     }
    1564             : }
    1565             : 
    1566           1 : void ScOpenCLTest::testFinacialINTRATEFormula()
    1567             : {
    1568           1 :     if(!initTestEnv("opencl/financial/INTRATE.", XLS, false))
    1569           2 :         return;
    1570           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1571           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1572           0 :     rDoc.CalcAll();
    1573             : 
    1574           0 :     for (SCROW i = 0; i <= 9; ++i)
    1575             :     {
    1576           0 :         double fLibre = rDoc.GetValue(ScAddress(5, i, 0));
    1577           0 :         double fExcel = rDocRes.GetValue(ScAddress(5, i, 0));
    1578           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1579             :     }
    1580             : }
    1581             : 
    1582           1 : void ScOpenCLTest::testStatisticalFormulaStandard()
    1583             : {
    1584           1 :     if(!initTestEnv("opencl/statistical/Standard.", XLS, false))
    1585           2 :         return;
    1586           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1587           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1588           0 :     rDoc.CalcAll();
    1589             : 
    1590             :     // Check the results of formula cells in the shared formula range.
    1591           0 :     for (SCROW i = 1; i <= 20; ++i)
    1592             :     {
    1593           0 :         double fLibre = rDoc.GetValue(ScAddress(3,i,0));
    1594           0 :         double fExcel = rDocRes.GetValue(ScAddress(3,i,0));
    1595           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1596             :     }
    1597             : }
    1598             : 
    1599           1 : void ScOpenCLTest::testStatisticalFormulaWeibull()
    1600             : {
    1601           1 :     if(!initTestEnv("opencl/statistical/Weibull.", XLS, false))
    1602           2 :         return;
    1603           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1604           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1605           0 :     rDoc.CalcAll();
    1606             : 
    1607             :     // Check the results of formula cells in the shared formula range.
    1608           0 :     for (SCROW i = 1; i <= 20; ++i)
    1609             :     {
    1610           0 :         double fLibre = rDoc.GetValue(ScAddress(4,i,0));
    1611           0 :         double fExcel = rDocRes.GetValue(ScAddress(4,i,0));
    1612           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre,
    1613           0 :             fExcel == 0?1e-4:fabs(1e-4*fExcel));
    1614             :     }
    1615             : }
    1616             : 
    1617           1 : void ScOpenCLTest::testStatisticalFormulaVar()
    1618             : {
    1619           1 :     if(!initTestEnv("opencl/statistical/Var.", XLS, false))
    1620           2 :         return;
    1621           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1622           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1623           0 :     rDoc.CalcAll();
    1624             : 
    1625             :     // Check the results of formula cells in the shared formula range.
    1626           0 :     for (SCROW i = 1; i <= 20; ++i)
    1627             :     {
    1628           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    1629           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    1630           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1631             :     }
    1632             : }
    1633             : 
    1634           1 : void ScOpenCLTest::testStatisticalFormulaSkew()
    1635             : {
    1636           1 :     if(!initTestEnv("opencl/statistical/Skew.", XLS, false))
    1637           2 :         return;
    1638           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1639           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1640           0 :     rDoc.CalcAll();
    1641             : 
    1642             :     // Check the results of formula cells in the shared formula range.
    1643           0 :     for (SCROW i = 1; i <= 20; ++i)
    1644             :     {
    1645           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    1646           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    1647           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1648             :     }
    1649             : }
    1650             : 
    1651           1 : void ScOpenCLTest::testStatisticalFormulaSkewp()
    1652             : {
    1653           1 :     if(!initTestEnv("opencl/statistical/Skewp.", XLS, false))
    1654           2 :         return;
    1655           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1656           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1657           0 :     rDoc.CalcAll();
    1658             : 
    1659             :     // Check the results of formula cells in the shared formula range.
    1660           0 :     for (SCROW i = 1; i <= 20; ++i)
    1661             :     {
    1662           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    1663           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    1664           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1665             :     }
    1666             : }
    1667             : 
    1668           1 : void ScOpenCLTest::testStatisticalFormulaPearson()
    1669             : {
    1670           1 :     if(!initTestEnv("opencl/statistical/Pearson.", XLS, false))
    1671           2 :         return;
    1672           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1673           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1674           0 :     rDoc.CalcAll();
    1675             : 
    1676             :     // Check the results of formula cells in the shared formula range.
    1677           0 :     for (SCROW i = 1; i <= 9; ++i)
    1678             :     {
    1679           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    1680           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    1681           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1682             :     }
    1683             : }
    1684             : 
    1685           1 : void ScOpenCLTest::testStatisticalFormulaRsq()
    1686             : {
    1687           1 :     if(!initTestEnv("opencl/statistical/Rsq.", XLS, false))
    1688           2 :         return;
    1689           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1690           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1691           0 :     rDoc.CalcAll();
    1692             : 
    1693             :     // Check the results of formula cells in the shared formula range.
    1694           0 :     for (SCROW i = 1; i <= 9; ++i)
    1695             :     {
    1696           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    1697           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    1698           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1699             :     }
    1700             : }
    1701             : 
    1702           1 : void ScOpenCLTest::testMathFormulaTrunc()
    1703             : {
    1704           1 :     if(!initTestEnv("opencl/math/trunc.", XLS, false))
    1705           2 :         return;
    1706           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1707           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1708           0 :     rDoc.CalcAll();
    1709             : 
    1710           0 :     for (SCROW i = 0; i <= 15; ++i)
    1711             :     {
    1712           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    1713           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    1714           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1715             :     }
    1716             : }
    1717             : 
    1718           1 : void ScOpenCLTest::testMathFormulaCosh()
    1719             : {
    1720           1 :     if(!initTestEnv("opencl/math/cosh.", XLS, false))
    1721           2 :         return;
    1722           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1723           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1724           0 :     rDoc.CalcAll();
    1725             : 
    1726           0 :     for (SCROW i = 0; i <= 15; ++i)
    1727             :     {
    1728           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    1729           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    1730           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1731             :     }
    1732             : }
    1733           1 : void ScOpenCLTest::testStatisticalFormulaCovar()
    1734             : {
    1735           1 :     if(!initTestEnv("opencl/statistical/Covar.", XLS, false))
    1736           2 :         return;
    1737           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1738           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1739           0 :     rDoc.CalcAll();
    1740             : 
    1741             :     // Check the results of formula cells in the shared formula range.
    1742           0 :     for (SCROW i = 0; i <= 16; ++i)
    1743             :     {
    1744           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    1745           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    1746           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1747             :     }
    1748             : }
    1749             : 
    1750           1 : void ScOpenCLTest::testStatisticalFormulaKurt()
    1751             : {
    1752           1 :     if(!initTestEnv("opencl/statistical/Kurt.", XLS, false))
    1753           2 :         return;
    1754           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1755           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1756           0 :     rDoc.CalcAll();
    1757             : 
    1758             :     // Check the results of formula cells in the shared formula range.
    1759           0 :     for (SCROW i = 1; i <= 19; ++i)
    1760             :     {
    1761           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    1762           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    1763           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1764             :     }
    1765             : }
    1766             : 
    1767           1 : void ScOpenCLTest::testMathFormulaCot()
    1768             : {
    1769           1 :     if(!initTestEnv("opencl/math/cot.", ODS, false))
    1770           2 :         return;
    1771           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1772           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1773           0 :     rDoc.CalcAll();
    1774             : 
    1775           0 :     for (SCROW i = 0; i <= 15; ++i)
    1776             :     {
    1777           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    1778           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    1779           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1780             :     }
    1781             : }
    1782             : 
    1783           1 : void ScOpenCLTest::testStatisticalFormulaDevSq()
    1784             : {
    1785           1 :     if(!initTestEnv("opencl/statistical/DevSq.", XLS, false))
    1786           2 :         return;
    1787           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1788           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1789           0 :     rDoc.CalcAll();
    1790             : 
    1791             :     // Check the results of formula cells in the shared formula range.
    1792           0 :     for (SCROW i = 0; i <= 11; ++i)
    1793             :     {
    1794           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    1795           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    1796           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1797             :     }
    1798             : }
    1799             : 
    1800           1 : void ScOpenCLTest::testMathFormulaCsc()
    1801             : {
    1802           1 :     if(!initTestEnv("opencl/math/csc.", ODS, false))
    1803           2 :         return;
    1804           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1805           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1806           0 :     rDoc.CalcAll();
    1807             : 
    1808           0 :     for (SCROW i = 0; i <= 15; ++i)
    1809             :     {
    1810           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    1811           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    1812           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1813             :     }
    1814             : }
    1815             : 
    1816           1 : void ScOpenCLTest::testMathFormulaCoth()
    1817             : {
    1818           1 :     if(!initTestEnv("opencl/math/coth.", ODS, false))
    1819           2 :         return;
    1820           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1821           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1822           0 :     rDoc.CalcAll();
    1823             : 
    1824           0 :     for (SCROW i = 0; i <= 15; ++i)
    1825             :     {
    1826           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    1827           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    1828           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1829             :     }
    1830             : }
    1831             : 
    1832           1 : void ScOpenCLTest::testFinacialXNPVFormula()
    1833             : {
    1834           1 :     if(!initTestEnv("opencl/financial/XNPV.", XLS, false))
    1835           2 :         return;
    1836           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1837           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1838           0 :     rDoc.CalcAll();
    1839             : 
    1840           0 :     for (SCROW i = 1; i <= 9; ++i)
    1841             :     {
    1842           0 :         double fLibre = rDoc.GetValue(ScAddress(3, i, 0));
    1843           0 :         double fExcel = rDocRes.GetValue(ScAddress(3, i, 0));
    1844           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1845             :     }
    1846             : 
    1847           0 :      for (SCROW i = 16; i <= 26; ++i)
    1848             :     {
    1849           0 :         double fLibre = rDoc.GetValue(ScAddress(3, i, 0));
    1850           0 :         double fExcel = rDocRes.GetValue(ScAddress(3, i, 0));
    1851           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1852             :     }
    1853             : }
    1854             : 
    1855           1 : void ScOpenCLTest::testStatisticalFormulaIntercept()
    1856             : {
    1857           1 :     if(!initTestEnv("opencl/statistical/Intercept.", XLS, false))
    1858           2 :         return;
    1859           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1860           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1861           0 :     rDoc.CalcAll();
    1862             : 
    1863           0 :     for (SCROW i = 1; i <= 19; ++i)
    1864             :     {
    1865           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    1866           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    1867           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1868             :     }
    1869             : }
    1870             : 
    1871           1 : void ScOpenCLTest::testFinancialAmordegrcFormula()
    1872             : {
    1873           1 :     if(!initTestEnv("opencl/financial/Amordegrc.", XLS, false))
    1874           2 :         return;
    1875           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1876           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1877           0 :     rDoc.CalcAll();
    1878             : 
    1879           0 :     for (SCROW i = 0; i <= 9; ++i)
    1880             :     {
    1881           0 :         double fLibre = rDoc.GetValue(ScAddress(7, i, 0));
    1882           0 :         double fExcel = rDocRes.GetValue(ScAddress(7, i, 0));
    1883           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1884             :     }
    1885             : }
    1886             : 
    1887           1 : void ScOpenCLTest:: testFinancialISPMTFormula()
    1888             : {
    1889           1 :     if(!initTestEnv("opencl/financial/ISPMT.", XLS, false))
    1890           2 :         return;
    1891           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1892           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1893           0 :     rDoc.CalcAll();
    1894             : 
    1895           0 :     for (SCROW i = 0; i <= 9; ++i)
    1896             :     {
    1897           0 :         double fLibre = rDoc.GetValue(ScAddress(4, i, 0));
    1898           0 :         double fExcel = rDocRes.GetValue(ScAddress(4, i, 0));
    1899           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1900             :     }
    1901             : }
    1902             : 
    1903           1 : void ScOpenCLTest::testStatisticalFormulaMedian()
    1904             : {
    1905           1 :     if(!initTestEnv("opencl/statistical/Median.", XLS, false))
    1906           2 :         return;
    1907           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1908           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1909           0 :     rDoc.CalcAll();
    1910             : 
    1911             :     // Check the results of formula cells in the shared formula range.
    1912           0 :     for (SCROW i = 1; i <= 9; ++i)
    1913             :     {
    1914           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    1915           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    1916           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1917             :     }
    1918             : }
    1919             : 
    1920           1 : void ScOpenCLTest::testStatisticalFormulaNormdist()
    1921             : {
    1922           1 :     if(!initTestEnv("opencl/statistical/Normdist.", XLS, false))
    1923           2 :         return;
    1924           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1925           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1926           0 :     rDoc.CalcAll();
    1927             : 
    1928             :     // Check the results of formula cells in the shared formula range.
    1929           0 :     for (SCROW i = 1; i <= 19; ++i)
    1930             :     {
    1931           0 :         double fLibre = rDoc.GetValue(ScAddress(4,i,0));
    1932           0 :         double fExcel = rDocRes.GetValue(ScAddress(4,i,0));
    1933           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1934             :     }
    1935             : }
    1936             : 
    1937           1 : void ScOpenCLTest::testStatisticalFormulaNormsdist()
    1938             : {
    1939           1 :     if(!initTestEnv("opencl/statistical/Normsdist.", XLS, false))
    1940           2 :         return;
    1941           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1942           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1943           0 :     rDoc.CalcAll();
    1944             : 
    1945             :     // Check the results of formula cells in the shared formula range.
    1946           0 :     for (SCROW i = 1; i <= 19; ++i)
    1947             :     {
    1948           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    1949           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    1950           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1951             :     }
    1952             : }
    1953             : 
    1954           1 : void ScOpenCLTest::testStatisticalFormulaPermut()
    1955             : {
    1956           1 :     if(!initTestEnv("opencl/statistical/Permut.", XLS, false))
    1957           2 :         return;
    1958           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1959           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1960           0 :     rDoc.CalcAll();
    1961             : 
    1962             :     // Check the results of formula cells in the shared formula range.
    1963           0 :     for (SCROW i = 1; i <= 19; ++i)
    1964             :     {
    1965           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    1966           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    1967           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1968             :     }
    1969             : }
    1970             : 
    1971           1 : void ScOpenCLTest::testStatisticalFormulaPermutation()
    1972             : {
    1973           1 :     if(!initTestEnv("opencl/statistical/Permutation.", XLS, false))
    1974           2 :         return;
    1975           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1976           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1977           0 :     rDoc.CalcAll();
    1978             : 
    1979             :     // Check the results of formula cells in the shared formula range.
    1980           0 :     for (SCROW i = 1; i <= 9; ++i)
    1981             :     {
    1982           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    1983           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    1984           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    1985             :     }
    1986             : }
    1987             : 
    1988           1 : void ScOpenCLTest::testStatisticalFormulaPhi()
    1989             : {
    1990           1 :     if(!initTestEnv("opencl/statistical/Phi.", XLS, false))
    1991           2 :         return;
    1992           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    1993           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    1994           0 :     rDoc.CalcAll();
    1995             : 
    1996             :     // Check the results of formula cells in the shared formula range.
    1997           0 :     for (SCROW i = 1; i <= 19; ++i)
    1998             :     {
    1999           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    2000           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    2001           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2002             :     }
    2003             : }
    2004             : 
    2005           1 : void ScOpenCLTest::testMathFormulaCscH()
    2006             : {
    2007           1 :     if(!initTestEnv("opencl/math/csch.", ODS, false))
    2008           2 :         return;
    2009           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2010           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2011           0 :     rDoc.CalcAll();
    2012             : 
    2013           0 :     for (SCROW i = 0; i <= 15; ++i)
    2014             :     {
    2015           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    2016           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    2017           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2018             :     }
    2019             : }
    2020             : 
    2021           1 : void ScOpenCLTest::testStatisticalFormulaLogInv()
    2022             : {
    2023           1 :     if(!initTestEnv("opencl/statistical/LogInv.", XLS, false))
    2024           2 :         return;
    2025           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2026           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2027           0 :     rDoc.CalcAll();
    2028             : 
    2029             :     // Check the results of formula cells in the shared formula range.
    2030           0 :     for (SCROW i = 1; i <= 19; ++i)
    2031             :     {
    2032           0 :         double fLibre = rDoc.GetValue(ScAddress(3,i,0));
    2033           0 :         double fExcel = rDocRes.GetValue(ScAddress(3,i,0));
    2034           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2035             :     }
    2036             : }
    2037             : 
    2038           1 : void ScOpenCLTest::testFinacialNPERFormula()
    2039             : {
    2040           1 :     if(!initTestEnv("opencl/financial/NPER.", XLS, false))
    2041           2 :         return;
    2042           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2043           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2044           0 :     rDoc.CalcAll();
    2045             : 
    2046           0 :     for (SCROW i = 0; i <= 10; ++i)
    2047             :     {
    2048           0 :         double fLibre = rDoc.GetValue(ScAddress(5, i, 0));
    2049           0 :         double fExcel = rDocRes.GetValue(ScAddress(5, i, 0));
    2050           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2051             :     }
    2052             : }
    2053             : 
    2054           1 : void ScOpenCLTest::testStatisticalFormulaForecast()
    2055             : {
    2056           1 :     if(!initTestEnv("opencl/statistical/Forecast.", XLS, false))
    2057           2 :         return;
    2058           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2059           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2060           0 :     rDoc.CalcAll();
    2061             : 
    2062             :     // Check the results of formula cells in the shared formula range.
    2063           0 :     for (SCROW i = 1; i <= 19; ++i)
    2064             :     {
    2065           0 :         double fLibre = rDoc.GetValue(ScAddress(3,i,0));
    2066           0 :         double fExcel = rDocRes.GetValue(ScAddress(3,i,0));
    2067           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2068             :     }
    2069             : }
    2070             : 
    2071           1 : void ScOpenCLTest::testFinancialAmorlincFormula()
    2072             : {
    2073           1 :     if(!initTestEnv("opencl/financial/Amorlinc.", XLS, false))
    2074           2 :         return;
    2075           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2076           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2077           0 :     rDoc.CalcAll();
    2078             : 
    2079           0 :     for (SCROW i = 0; i <= 9; ++i)
    2080             :     {
    2081           0 :         double fLibre = rDoc.GetValue(ScAddress(7, i, 0));
    2082           0 :         double fExcel = rDocRes.GetValue(ScAddress(7, i, 0));
    2083           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2084             :     }
    2085             : }
    2086             : 
    2087           1 : void ScOpenCLTest::testFinancialDDBFormula()
    2088             : {
    2089           1 :     if(!initTestEnv("opencl/financial/ddb.", XLS, false))
    2090           2 :         return;
    2091           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2092           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2093           0 :     rDoc.CalcAll();
    2094             : 
    2095           0 :     for (SCROW i = 0; i <= 9; ++i)
    2096             :     {
    2097           0 :         double fLibre = rDoc.GetValue(ScAddress(5, i, 0));
    2098           0 :         double fExcel = rDocRes.GetValue(ScAddress(5, i, 0));
    2099           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2100             :     }
    2101             : }
    2102           1 : void ScOpenCLTest::testFinacialPriceMatFormula()
    2103             : {
    2104           1 :     if(!initTestEnv("opencl/financial/PriceMat.", XLS, false))
    2105           2 :         return;
    2106           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2107           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2108           0 :     rDoc.CalcAll();
    2109             : 
    2110           0 :     for (SCROW i = 0; i <= 9; ++i)
    2111             :     {
    2112           0 :         double fLibre = rDoc.GetValue(ScAddress(6, i, 0));
    2113           0 :         double fExcel = rDocRes.GetValue(ScAddress(6, i, 0));
    2114           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2115             :     }
    2116             : }
    2117           1 : void ScOpenCLTest::testFinacialFormulaReceived()
    2118             : {
    2119           1 :     if(!initTestEnv("opencl/financial/Received.", XLS, false))
    2120           2 :         return;
    2121           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2122           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2123           0 :     rDoc.CalcAll();
    2124             : 
    2125             :     // Check the results of formula cells in the shared formula range.
    2126           0 :     for (SCROW i = 0; i < 10; ++i)
    2127             :     {
    2128           0 :         double fLibre = rDoc.GetValue(ScAddress(5,i,0));
    2129           0 :         double fExcel = rDocRes.GetValue(ScAddress(5,i,0));
    2130           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2131             :     }
    2132             : }
    2133           1 : void ScOpenCLTest::testFinancialFormulaCumipmt()
    2134             : {
    2135           1 :     if(!initTestEnv("opencl/financial/Cumipmt.", XLS, false))
    2136           2 :         return;
    2137           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2138           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2139           0 :     rDoc.CalcAll();
    2140             : 
    2141             :     // Check the results of formula cells in the shared formula range.
    2142           0 :     for (SCROW i = 1; i <= 10; ++i)
    2143             :     {
    2144           0 :         double fLibre = rDoc.GetValue(ScAddress(6,i,0));
    2145           0 :         double fExcel = rDocRes.GetValue(ScAddress(6,i,0));
    2146           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2147             :     }
    2148             : }
    2149           1 : void ScOpenCLTest::testFinancialFormulaCumprinc()
    2150             : {
    2151           1 :     if(!initTestEnv("opencl/financial/Cumprinc.", XLS, false))
    2152           2 :         return;
    2153           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2154           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2155           0 :     rDoc.CalcAll();
    2156             : 
    2157             :     // Check the results of formula cells in the shared formula range.
    2158           0 :     for (SCROW i = 1; i <= 10; ++i)
    2159             :     {
    2160           0 :         double fLibre = rDoc.GetValue(ScAddress(6,i,0));
    2161           0 :         double fExcel = rDocRes.GetValue(ScAddress(6,i,0));
    2162           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2163             :     }
    2164             : }
    2165           1 : void ScOpenCLTest::testFinacialRRIFormula()
    2166             : {
    2167           1 :     if(!initTestEnv("opencl/financial/RRI.", XLS, false))
    2168           2 :         return;
    2169           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2170           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2171           0 :     rDoc.CalcAll();
    2172             : 
    2173           0 :     for (SCROW i = 0; i <= 9; ++i)
    2174             :     {
    2175           0 :         double fLibre = rDoc.GetValue(ScAddress(3, i, 0));
    2176           0 :         double fExcel = rDocRes.GetValue(ScAddress(3, i, 0));
    2177           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2178             :     }
    2179             : }
    2180           1 : void ScOpenCLTest::testFinacialEFFECT_ADDFormula()
    2181             : {
    2182           1 :     if(!initTestEnv("opencl/financial/EFFECT_ADD.", XLS, false))
    2183           2 :         return;
    2184           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2185           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2186           0 :     rDoc.CalcAll();
    2187             : 
    2188           0 :     for (SCROW i = 0; i <= 9; ++i)
    2189             :     {
    2190           0 :         double fLibre = rDoc.GetValue(ScAddress(2, i, 0));
    2191           0 :         double fExcel = rDocRes.GetValue(ScAddress(2, i, 0));
    2192           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2193             :     }
    2194             : }
    2195           1 : void ScOpenCLTest::testFinacialNominalFormula()
    2196             : {
    2197           1 :     if(!initTestEnv("opencl/financial/Nominal.", XLS, false))
    2198           2 :         return;
    2199           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2200           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2201           0 :     rDoc.CalcAll();
    2202             : 
    2203             : 
    2204             :     // Check the results of formula cells in the shared formula range.
    2205           0 :     for (SCROW i = 1; i <= 19; ++i)
    2206             :     {
    2207           0 :         double fLibre = rDoc.GetValue(ScAddress(3,i,0));
    2208           0 :         double fExcel = rDocRes.GetValue(ScAddress(3,i,0));
    2209           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2210             :     }
    2211             : }
    2212           1 : void ScOpenCLTest::testFinacialTBILLEQFormula()
    2213             : {
    2214           1 :     if(!initTestEnv("opencl/financial/TBILLEQ.", XLS, false))
    2215           2 :         return;
    2216           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2217           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2218           0 :     rDoc.CalcAll();
    2219             : 
    2220           0 :     for (SCROW i = 0; i <= 6; ++i)
    2221             :     {
    2222           0 :         double fLibre = rDoc.GetValue(ScAddress(3, i, 0));
    2223           0 :         double fExcel = rDocRes.GetValue(ScAddress(3, i, 0));
    2224           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2225             :     }
    2226             : }
    2227           1 : void ScOpenCLTest::testFinacialTBILLPRICEFormula()
    2228             : {
    2229           1 :     if(!initTestEnv("opencl/financial/TBILLPRICE.", XLS, false))
    2230           2 :         return;
    2231           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2232           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2233           0 :     rDoc.CalcAll();
    2234             : 
    2235           0 :     for (SCROW i = 0; i <= 6; ++i)
    2236             :     {
    2237           0 :         double fLibre = rDoc.GetValue(ScAddress(3, i, 0));
    2238           0 :         double fExcel = rDocRes.GetValue(ScAddress(3, i, 0));
    2239           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2240             :     }
    2241             : }
    2242           1 : void ScOpenCLTest::testFinacialTBILLYIELDFormula()
    2243             : {
    2244           1 :     if(!initTestEnv("opencl/financial/TBILLYIELD.", XLS, false))
    2245           2 :         return;
    2246           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2247           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2248           0 :     rDoc.CalcAll();
    2249             : 
    2250           0 :     for (SCROW i = 0; i <= 6; ++i)
    2251             :     {
    2252           0 :         double fLibre = rDoc.GetValue(ScAddress(3, i, 0));
    2253           0 :         double fExcel = rDocRes.GetValue(ScAddress(3, i, 0));
    2254           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2255             :     }
    2256             : }
    2257           1 : void ScOpenCLTest::testFinacialYIELDFormula()
    2258             : {
    2259           1 :     if(!initTestEnv("opencl/financial/YIELD.", XLS, false))
    2260           2 :         return;
    2261           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2262           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2263           0 :     rDoc.CalcAll();
    2264             : 
    2265           0 :     for (SCROW i = 0; i <= 6; ++i)
    2266             :     {
    2267           0 :         double fLibre = rDoc.GetValue(ScAddress(7, i, 0));
    2268           0 :         double fExcel = rDocRes.GetValue(ScAddress(7, i, 0));
    2269           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2270             :     }
    2271             : }
    2272             : 
    2273           1 : void ScOpenCLTest::testFinacialYIELDDISCFormula()
    2274             : {
    2275           1 :     if(!initTestEnv("opencl/financial/YIELDDISC.", XLS, false))
    2276           2 :         return;
    2277           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2278           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2279           0 :     rDoc.CalcAll();
    2280             : 
    2281           0 :     for (SCROW i = 0; i <= 6; ++i)
    2282             :     {
    2283           0 :         double fLibre = rDoc.GetValue(ScAddress(5, i, 0));
    2284           0 :         double fExcel = rDocRes.GetValue(ScAddress(5, i, 0));
    2285           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2286             :     }
    2287             : }
    2288             : 
    2289           1 : void ScOpenCLTest::testFinacialYIELDMATFormula()
    2290             : {
    2291           1 :     if(!initTestEnv("opencl/financial/YIELDMAT.", XLS, false))
    2292           2 :         return;
    2293           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2294           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2295           0 :     rDoc.CalcAll();
    2296             : 
    2297           0 :     for (SCROW i = 0; i <= 6; ++i)
    2298             :     {
    2299           0 :         double fLibre = rDoc.GetValue(ScAddress(6, i, 0));
    2300           0 :         double fExcel = rDocRes.GetValue(ScAddress(6, i, 0));
    2301           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2302             :     }
    2303             : }
    2304           1 : void ScOpenCLTest:: testFinacialPMTFormula()
    2305             : {
    2306           1 :     if(!initTestEnv("opencl/financial/PMT.", XLS, false))
    2307           2 :         return;
    2308           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2309           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2310           0 :     rDoc.CalcAll();
    2311             : 
    2312           0 :     for (SCROW i = 0; i <= 6; ++i)
    2313             :     {
    2314           0 :         double fLibre = rDoc.GetValue(ScAddress(5, i, 0));
    2315           0 :         double fExcel = rDocRes.GetValue(ScAddress(5, i, 0));
    2316           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2317             :     }
    2318             : }
    2319             : 
    2320           1 : void ScOpenCLTest:: testFinancialDurationFormula()
    2321             : {
    2322           1 :     if(!initTestEnv("opencl/financial/Duration.", ODS, false))
    2323           2 :         return;
    2324           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2325           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2326           0 :     rDoc.CalcAll();
    2327             : 
    2328           0 :     for (SCROW i = 0; i <= 9; ++i)
    2329             :     {
    2330           0 :         double fLibre = rDoc.GetValue(ScAddress(3, i, 0));
    2331           0 :         double fExcel = rDocRes.GetValue(ScAddress(3, i, 0));
    2332           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2333             :     }
    2334             : }
    2335             : 
    2336           1 : void ScOpenCLTest::testStatisticalFormulaLogNormDist()
    2337             : {
    2338           1 :     if(!initTestEnv("opencl/statistical/LogNormDist.", ODS, false))
    2339           2 :         return;
    2340           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2341           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2342           0 :     rDoc.CalcAll();
    2343             : 
    2344             :     // Check the results of formula cells in the shared formula range.
    2345           0 :     for (SCROW i = 1; i <= 19; ++i)
    2346             :     {
    2347           0 :         double fLibre = rDoc.GetValue(ScAddress(4,i,0));
    2348           0 :         double fExcel = rDocRes.GetValue(ScAddress(4,i,0));
    2349           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2350             :     }
    2351             : }
    2352             : 
    2353           1 : void ScOpenCLTest::testMathFormulaArcCos()
    2354             : {
    2355           1 :     if(!initTestEnv("opencl/math/ArcCos.", ODS, false))
    2356           2 :         return;
    2357           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2358           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2359           0 :     rDoc.CalcAll();
    2360             : 
    2361             :     // Verify ACos Function
    2362           0 :     for (SCROW i = 1; i <= 1000; ++i)
    2363             :     {
    2364           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    2365           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    2366           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2367             :     }
    2368             : }
    2369             : 
    2370           1 : void ScOpenCLTest::testMathFormulaPower()
    2371             : {
    2372           1 :     if(!initTestEnv("opencl/math/power.", ODS, false))
    2373           2 :         return;
    2374           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2375           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2376           0 :     rDoc.CalcAll();
    2377             : 
    2378           0 :     for (SCROW i = 0; i <= 15; ++i)
    2379             :     {
    2380           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    2381           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    2382           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2383             :     }
    2384             : }
    2385             : 
    2386           1 : void ScOpenCLTest:: testFinacialPPMTFormula()
    2387             : {
    2388           1 :     if(!initTestEnv("opencl/financial/PPMT.", XLS, false))
    2389           2 :         return;
    2390           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2391           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2392           0 :     rDoc.CalcAll();
    2393             : 
    2394           0 :     for (SCROW i = 0; i <= 6; ++i)
    2395             :     {
    2396           0 :         double fLibre = rDoc.GetValue(ScAddress(6, i, 0));
    2397           0 :         double fExcel = rDocRes.GetValue(ScAddress(6, i, 0));
    2398           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2399             :     }
    2400             : }
    2401             : 
    2402           1 : void ScOpenCLTest:: testFinacialNPVFormula()
    2403             : {
    2404           1 :     if(!initTestEnv("opencl/financial/NPV.", XLS, false))
    2405           2 :         return;
    2406           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2407           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2408           0 :     rDoc.CalcAll();
    2409             : 
    2410           0 :     for (SCROW i = 0; i <= 6; ++i)
    2411             :     {
    2412           0 :         double fLibre = rDoc.GetValue(ScAddress(6, i, 0));
    2413           0 :         double fExcel = rDocRes.GetValue(ScAddress(6, i, 0));
    2414           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2415             :     }
    2416             : }
    2417             : 
    2418           1 : void ScOpenCLTest:: testFinancialDuration_ADDFormula()
    2419             : {
    2420           1 :     if(!initTestEnv("opencl/financial/Duration_ADD.", XLS, false))
    2421           2 :         return;
    2422           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2423           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2424           0 :     rDoc.CalcAll();
    2425             : 
    2426           0 :     for (SCROW i = 0; i <= 9; ++i)
    2427             :     {
    2428           0 :         double fLibre = rDoc.GetValue(ScAddress(6, i, 0));
    2429           0 :         double fExcel = rDocRes.GetValue(ScAddress(6, i, 0));
    2430           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2431             :     }
    2432             : }
    2433             : 
    2434           1 : void ScOpenCLTest::testStatisticalFormulaNorminv()
    2435             : {
    2436           1 :     if(!initTestEnv("opencl/statistical/Norminv.", XLS, false))
    2437           2 :         return;
    2438           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2439           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2440           0 :     rDoc.CalcAll();
    2441             : 
    2442             :     // Check the results of formula cells in the shared formula range.
    2443           0 :     for (SCROW i = 1; i <= 19; ++i)
    2444             :     {
    2445           0 :         double fLibre = rDoc.GetValue(ScAddress(3,i,0));
    2446           0 :         double fExcel = rDocRes.GetValue(ScAddress(3,i,0));
    2447           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2448             :     }
    2449             : }
    2450             : 
    2451           1 : void ScOpenCLTest::testStatisticalFormulaNormsinv()
    2452             : {
    2453           1 :     if(!initTestEnv("opencl/statistical/Normsinv.", XLS, false))
    2454           2 :         return;
    2455           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2456           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2457           0 :     rDoc.CalcAll();
    2458             : 
    2459             :     // Check the results of formula cells in the shared formula range.
    2460           0 :     for (SCROW i = 1; i <= 19; ++i)
    2461             :     {
    2462           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    2463           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    2464           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2465             :     }
    2466             : }
    2467             : 
    2468           1 : void ScOpenCLTest::testMathFormulaArcCosHyp()
    2469             : {
    2470           1 :     if(!initTestEnv("opencl/math/ArcCosHyp.", ODS, false))
    2471           2 :         return;
    2472           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2473           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2474           0 :     rDoc.CalcAll();
    2475             : 
    2476             :     // Verify ACosH Function
    2477           0 :     for (SCROW i = 1; i <= 1000; ++i)
    2478             :     {
    2479           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    2480           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    2481           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2482             :     }
    2483             : }
    2484             : 
    2485           1 : void ScOpenCLTest:: testFinancialMDurationFormula()
    2486             : {
    2487           1 :     if(!initTestEnv("opencl/financial/MDuration.", XLS, false))
    2488           2 :         return;
    2489           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2490           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2491           0 :     rDoc.CalcAll();
    2492             : 
    2493           0 :     for (SCROW i = 0; i <= 9; ++i)
    2494             :     {
    2495           0 :         double fLibre = rDoc.GetValue(ScAddress(6, i, 0));
    2496           0 :         double fExcel = rDocRes.GetValue(ScAddress(6, i, 0));
    2497           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2498             :     }
    2499             : }
    2500             : 
    2501           1 : void ScOpenCLTest::testMathFormulaArcCot()
    2502             : {
    2503           1 :     if(!initTestEnv("opencl/math/ArcCot.", ODS, false))
    2504           2 :         return;
    2505           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2506           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2507           0 :     rDoc.CalcAll();
    2508             : 
    2509             :     // Verify ACot Function
    2510           0 :     for (SCROW i = 1; i <= 1000; ++i)
    2511             :     {
    2512           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    2513           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    2514           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2515             :     }
    2516             : }
    2517             : 
    2518           1 : void ScOpenCLTest:: testFinancialFVFormula()
    2519             : {
    2520           1 :     if(!initTestEnv("opencl/financial/FV.", XLS, false))
    2521           2 :         return;
    2522           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2523           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2524           0 :     rDoc.CalcAll();
    2525             : 
    2526           0 :     for (SCROW i = 0; i <= 9; ++i)
    2527             :     {
    2528           0 :         double fLibre = rDoc.GetValue(ScAddress(5, i, 0));
    2529           0 :         double fExcel = rDocRes.GetValue(ScAddress(5, i, 0));
    2530           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2531             :     }
    2532             : }
    2533             : 
    2534           1 : void ScOpenCLTest::testFinancialDBFormula()
    2535             : {
    2536           1 :     if(!initTestEnv("opencl/financial/db.", XLS, false))
    2537           2 :         return;
    2538           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2539           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2540           0 :     rDoc.CalcAll();
    2541             : 
    2542           0 :     for (SCROW i = 0; i <= 9; ++i)
    2543             :     {
    2544           0 :         double fLibre = rDoc.GetValue(ScAddress(5, i, 0));
    2545           0 :         double fExcel = rDocRes.GetValue(ScAddress(5, i, 0));
    2546           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2547             :     }
    2548             : }
    2549             : 
    2550           1 : void ScOpenCLTest::testFinancialCouppcdFormula()
    2551             : {
    2552           1 :     if(!initTestEnv("opencl/financial/Couppcd.", XLS, false))
    2553           2 :         return;
    2554           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2555           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2556           0 :     rDoc.CalcAll();
    2557             : 
    2558           0 :     for (SCROW i = 0; i <= 9; ++i)
    2559             :     {
    2560           0 :         double fLibre = rDoc.GetValue(ScAddress(4, i, 0));
    2561           0 :         double fExcel = rDocRes.GetValue(ScAddress(4, i, 0));
    2562           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2563             :     }
    2564             : }
    2565             : 
    2566           1 : void ScOpenCLTest::testMathSumIfsFormula()
    2567             : {
    2568           1 :     if(!initTestEnv("opencl/math/sumifs.", XLS, false))
    2569           2 :         return;
    2570           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2571           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2572           0 :     xDocSh->DoHardRecalc(true);
    2573             : 
    2574           0 :     for (SCROW i = 2; i <= 11; ++i)
    2575             :     {
    2576           0 :         double fLibre = rDoc.GetValue(ScAddress(5,i,0));
    2577           0 :         double fExcel = rDocRes.GetValue(ScAddress(5,i,0));
    2578           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2579             :     }
    2580           0 :     for (SCROW i = 2; i <= 11; ++i)
    2581             :     {
    2582           0 :         double fLibre = rDoc.GetValue(ScAddress(6,i,0));
    2583           0 :         double fExcel = rDocRes.GetValue(ScAddress(6,i,0));
    2584           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2585             :     }
    2586           0 :     for (SCROW i = 2; i <= 11; ++i)
    2587             :     {
    2588           0 :         double fLibre = rDoc.GetValue(ScAddress(7,i,0));
    2589           0 :         double fExcel = rDocRes.GetValue(ScAddress(7,i,0));
    2590           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2591             :     }
    2592           0 :     for (SCROW i = 2; i <= 11; ++i)
    2593             :     {
    2594           0 :         double fLibre = rDoc.GetValue(ScAddress(8,i,0));
    2595           0 :         double fExcel = rDocRes.GetValue(ScAddress(8,i,0));
    2596           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2597             :     }
    2598             : }
    2599             : 
    2600           1 : void ScOpenCLTest::testMathFormulaArcCotHyp()
    2601             : {
    2602           1 :     if(!initTestEnv("opencl/math/ArcCotHyp.", ODS, false))
    2603           2 :         return;
    2604           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2605           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2606           0 :     rDoc.CalcAll();
    2607             : 
    2608             :     // Verify ACotH Function
    2609           0 :     for (SCROW i = 1; i <= 1000; ++i)
    2610             :     {
    2611           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    2612           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    2613           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2614             :     }
    2615             : }
    2616             : 
    2617           1 : void ScOpenCLTest::testMathFormulaArcSin()
    2618             : {
    2619           1 :     if(!initTestEnv("opencl/math/ArcSin.", ODS, false))
    2620           2 :         return;
    2621           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2622           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2623           0 :     rDoc.CalcAll();
    2624             : 
    2625             :     // Verify ACotH Function
    2626           0 :     for (SCROW i = 1; i <= 1000; ++i)
    2627             :     {
    2628           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    2629           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    2630           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2631             :     }
    2632             : }
    2633             : 
    2634           1 : void ScOpenCLTest:: testFinancialVDBFormula()
    2635             : {
    2636           1 :     if(!initTestEnv("opencl/financial/VDB.", XLS, false))
    2637           2 :         return;
    2638           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2639           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2640           0 :     rDoc.CalcAll();
    2641             : 
    2642           0 :     for (SCROW i = 0; i <= 10; ++i)
    2643             :     {
    2644           0 :         double fLibre = rDoc.GetValue(ScAddress(7, i, 0));
    2645           0 :         double fExcel = rDocRes.GetValue(ScAddress(7, i, 0));
    2646           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2647             :     }
    2648           0 :     for (SCROW i = 15; i <= 26; ++i)
    2649             :     {
    2650           0 :         double fLibre = rDoc.GetValue(ScAddress(6, i, 0));
    2651           0 :         double fExcel = rDocRes.GetValue(ScAddress(6, i, 0));
    2652           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2653             :     }
    2654           0 :     for (SCROW i = 30; i <= 41; ++i)
    2655             :     {
    2656           0 :         double fLibre = rDoc.GetValue(ScAddress(5, i, 0));
    2657           0 :         double fExcel = rDocRes.GetValue(ScAddress(5, i, 0));
    2658           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2659             :     }
    2660             : }
    2661             : 
    2662           1 : void ScOpenCLTest:: testFinancialIPMTFormula()
    2663             : {
    2664           1 :     if(!initTestEnv("opencl/financial/IPMT.", XLS, false))
    2665           2 :         return;
    2666           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2667           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2668           0 :     rDoc.CalcAll();
    2669             : 
    2670           0 :     for (SCROW i = 0; i <= 9; ++i)
    2671             :     {
    2672           0 :         double fLibre = rDoc.GetValue(ScAddress(6, i, 0));
    2673           0 :         double fExcel = rDocRes.GetValue(ScAddress(6, i, 0));
    2674           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2675             :     }
    2676             : }
    2677             : 
    2678           1 : void ScOpenCLTest:: testFinancialXirrFormula()
    2679             : {
    2680           1 :     if(!initTestEnv("opencl/financial/XIRR.", ODS, false))
    2681           2 :         return;
    2682           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2683           0 :     rDoc.CalcAll();
    2684             : 
    2685           0 :     for (SCROW i = 1; i <= 10; ++i)
    2686             :     {
    2687           0 :         double fFormula  = rDoc.GetValue(ScAddress(2, i, 0));
    2688           0 :         double fExpected = rDoc.GetValue(ScAddress(3, i, 0));
    2689           0 :         CPPUNIT_ASSERT(rtl::math::approxEqual(fExpected, fFormula));
    2690             :     }
    2691           0 :     for (SCROW i = 18; i <= 27; ++i)
    2692             :     {
    2693           0 :         double fFormula = rDoc.GetValue(ScAddress(2, i, 0));
    2694           0 :         double fExpected = rDoc.GetValue(ScAddress(3, i, 0));
    2695           0 :         CPPUNIT_ASSERT(rtl::math::approxEqual(fExpected, fFormula));
    2696             :     }
    2697             : 
    2698             : 
    2699             : }
    2700             : 
    2701           1 : void ScOpenCLTest::testStatisticalFormulaChiSqDist()
    2702             : {
    2703           1 :     if(!initTestEnv("opencl/statistical/CHISQDIST.", ODS, false))
    2704           2 :         return;
    2705           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2706           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2707           0 :     rDoc.CalcAll();
    2708             : 
    2709             :     // Check the results of formula cells in the shared formula range.
    2710           0 :     for (SCROW i = 1; i <= 9; ++i)
    2711             :     {
    2712           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    2713           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    2714           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2715             :     }
    2716           0 :     for (SCROW i = 1; i <= 9; ++i)
    2717             :     {
    2718           0 :         double fLibre = rDoc.GetValue(ScAddress(3,i,0));
    2719           0 :         double fExcel = rDocRes.GetValue(ScAddress(3,i,0));
    2720           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2721             :     }
    2722             : }
    2723             : 
    2724           1 : void ScOpenCLTest::testStatisticalFormulaConfidence()
    2725             : {
    2726           1 :     if(!initTestEnv("opencl/statistical/Confidence.", XLS, false))
    2727           2 :         return;
    2728           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2729           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2730           0 :     rDoc.CalcAll();
    2731             : 
    2732             :     // Check the results of formula cells in the shared formula range.
    2733           0 :     for (SCROW i = 0; i <= 9; ++i)
    2734             :     {
    2735           0 :         double fLibre = rDoc.GetValue(ScAddress(3,i,0));
    2736           0 :         double fExcel = rDocRes.GetValue(ScAddress(3,i,0));
    2737           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2738             :     }
    2739             : }
    2740             : 
    2741           1 : void ScOpenCLTest::testStatisticalFormulaFDist()
    2742             : {
    2743           1 :     if(!initTestEnv("opencl/statistical/Fdist.", XLS, false))
    2744           2 :         return;
    2745           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2746           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2747           0 :     rDoc.CalcAll();
    2748             : 
    2749             :     // Check the results of formula cells in the shared formula range.
    2750           0 :     for (SCROW i = 0; i <= 9; ++i)
    2751             :     {
    2752           0 :         double fLibre = rDoc.GetValue(ScAddress(3,i,0));
    2753           0 :         double fExcel = rDocRes.GetValue(ScAddress(3,i,0));
    2754           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2755             :     }
    2756             : }
    2757             : 
    2758           1 : void ScOpenCLTest::testFinancialCoupncdFormula()
    2759             : {
    2760           1 :     if(!initTestEnv("opencl/financial/Coupncd.", XLS, false))
    2761           2 :         return;
    2762           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2763           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2764           0 :     rDoc.CalcAll();
    2765             : 
    2766           0 :     for (SCROW i = 0; i <= 9; ++i)
    2767             :     {
    2768           0 :         double fLibre = rDoc.GetValue(ScAddress(4, i, 0));
    2769           0 :         double fExcel = rDocRes.GetValue(ScAddress(4, i, 0));
    2770           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2771             :     }
    2772             : }
    2773             : 
    2774           1 : void ScOpenCLTest::testFinancialAccrintFormula()
    2775             : {
    2776           1 :     if(!initTestEnv("opencl/financial/Accrint.", XLS, false))
    2777           2 :         return;
    2778           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2779           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2780           0 :     rDoc.CalcAll();
    2781             : 
    2782           0 :     for (SCROW i = 0; i <= 9; ++i)
    2783             :     {
    2784           0 :         double fLibre = rDoc.GetValue(ScAddress(7, i, 0));
    2785           0 :         double fExcel = rDocRes.GetValue(ScAddress(7, i, 0));
    2786           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2787             :     }
    2788             : }
    2789             : 
    2790           1 : void ScOpenCLTest::testStatisticalFormulaCritBinom()
    2791             : {
    2792           1 :     if(!initTestEnv("opencl/statistical/CritBinom.", XLS, false))
    2793           2 :         return;
    2794           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2795           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2796           0 :     rDoc.CalcAll();
    2797             : 
    2798             :     // Check the results of formula cells in the shared formula range.
    2799           0 :     for (SCROW i = 0; i <= 9; ++i)
    2800             :     {
    2801           0 :         double fLibre = rDoc.GetValue(ScAddress(3,i,0));
    2802           0 :         double fExcel = rDocRes.GetValue(ScAddress(3,i,0));
    2803           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2804             :     }
    2805             : }
    2806             : 
    2807           1 : void ScOpenCLTest::testMathFormulaArcSinHyp()
    2808             : {
    2809           1 :     if(!initTestEnv("opencl/math/ArcSinHyp.", ODS, false))
    2810           2 :         return;
    2811           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2812           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2813           0 :     rDoc.CalcAll();
    2814             : 
    2815             :     // Verify ASinH Function
    2816           0 :     for (SCROW i = 1; i <= 1000; ++i)
    2817             :     {
    2818           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    2819           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    2820           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2821             :     }
    2822             : }
    2823             : 
    2824           1 : void ScOpenCLTest::testMathFormulaArcTan()
    2825             : {
    2826           1 :     if(!initTestEnv("opencl/math/ArcTan.", ODS, false))
    2827           2 :         return;
    2828           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2829           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2830           0 :     rDoc.CalcAll();
    2831             : 
    2832             :     // Verify ATan Function
    2833           0 :     for (SCROW i = 1; i <= 1000; ++i)
    2834             :     {
    2835           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    2836           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    2837           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2838             :     }
    2839             : }
    2840             : 
    2841           1 : void ScOpenCLTest::testMathFormulaArcTanHyp()
    2842             : {
    2843           1 :     if(!initTestEnv("opencl/math/ArcTanHyp.", ODS, false))
    2844           2 :         return;
    2845           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2846           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2847           0 :     rDoc.CalcAll();
    2848             : 
    2849             :     // Verify ATanH Function
    2850           0 :     for (SCROW i = 1; i <= 1000; ++i)
    2851             :     {
    2852           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    2853           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    2854           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2855             :     }
    2856             : }
    2857             : 
    2858           1 : void ScOpenCLTest:: testFinacialNPER1Formula()
    2859             : {
    2860           1 :     if(!initTestEnv("opencl/financial/NPER1.", XLS, false))
    2861           2 :         return;
    2862           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2863           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2864           0 :     rDoc.CalcAll();
    2865             : 
    2866           0 :     for (SCROW i = 0; i <= 6; ++i)
    2867             :     {
    2868           0 :         double fLibre = rDoc.GetValue(ScAddress(5, i, 0));
    2869           0 :         double fExcel = rDocRes.GetValue(ScAddress(5, i, 0));
    2870           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2871             :     }
    2872             : }
    2873             : 
    2874           1 : void ScOpenCLTest::testMathFormulaArcTan2()
    2875             : {
    2876           1 :     if(!initTestEnv("opencl/math/ArcTan2.", ODS, false))
    2877           2 :         return;
    2878           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2879           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2880           0 :     rDoc.CalcAll();
    2881             : 
    2882             :     // Verify ATan2 Function
    2883           0 :     for (SCROW i = 1; i <= 17; ++i)
    2884             :     {
    2885           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    2886           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    2887           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, 0.000001);
    2888             :     }
    2889             : }
    2890             : 
    2891           1 : void ScOpenCLTest::testStatisticalFormulaChiSqInv()
    2892             : {
    2893           1 :     if(!initTestEnv("opencl/statistical/CHISQINV.", ODS, false))
    2894           2 :         return;
    2895           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2896           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2897           0 :     rDoc.CalcAll();
    2898             : 
    2899             :     // Check the results of formula cells in the shared formula range.
    2900           0 :     for (SCROW i = 1; i <= 9; ++i)
    2901             :     {
    2902           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    2903           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    2904           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2905             :     }
    2906             : }
    2907             : 
    2908           1 : void ScOpenCLTest::testMathFormulaBitAnd()
    2909             : {
    2910           1 :     if(!initTestEnv("opencl/math/BitAnd.", ODS, false))
    2911           2 :         return;
    2912           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2913           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2914           0 :     rDoc.CalcAll();
    2915             : 
    2916             :     // Verify BitAnd Function
    2917           0 :     for (SCROW i = 1; i <= 1000; ++i)
    2918             :     {
    2919           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    2920           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    2921           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2922             :     }
    2923             : }
    2924             : 
    2925           1 : void ScOpenCLTest::testStatisticalFormulaPoisson()
    2926             : {
    2927           1 :     if(!initTestEnv("opencl/statistical/Poisson.", XLS, false))
    2928           2 :         return;
    2929           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2930           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2931           0 :     rDoc.CalcAll();
    2932             : 
    2933             :     // Check the results of formula cells in the shared formula range.
    2934           0 :     for (SCROW i = 1; i <= 19; ++i)
    2935             :     {
    2936           0 :         double fLibre = rDoc.GetValue(ScAddress(3,i,0));
    2937           0 :         double fExcel = rDocRes.GetValue(ScAddress(3,i,0));
    2938           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2939             :     }
    2940             : }
    2941             : 
    2942           1 : void ScOpenCLTest::testStatisticalFormulaExpondist()
    2943             : {
    2944           1 :     if(!initTestEnv("opencl/statistical/Expondist.", XLS, false))
    2945           2 :         return;
    2946           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2947           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2948           0 :     rDoc.CalcAll();
    2949             : 
    2950             :     // Check the results of formula cells in the shared formula range.
    2951           0 :     for (SCROW i = 0; i <= 9; ++i)
    2952             :     {
    2953           0 :         double fLibre = rDoc.GetValue(ScAddress(3,i,0));
    2954           0 :         double fExcel = rDocRes.GetValue(ScAddress(3,i,0));
    2955           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2956             :     }
    2957             : }
    2958             : 
    2959           1 : void ScOpenCLTest::testMathFormulaBitOr()
    2960             : {
    2961           1 :     if(!initTestEnv("opencl/math/BitOr.", ODS, false))
    2962           2 :         return;
    2963           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2964           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2965           0 :     rDoc.CalcAll();
    2966             : 
    2967             :     // Verify BitOr Function
    2968           0 :     for (SCROW i = 1; i <= 20; ++i)
    2969             :     {
    2970           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    2971           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    2972           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2973             :     }
    2974             : }
    2975             : 
    2976           1 : void ScOpenCLTest::testMathFormulaOdd()
    2977             : {
    2978           1 :     if(!initTestEnv("opencl/math/odd.", XLS, false))
    2979           2 :         return;
    2980           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2981           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2982           0 :     rDoc.CalcAll();
    2983             : 
    2984           0 :     for (SCROW i = 0; i <= 15; ++i)
    2985             :     {
    2986           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    2987           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    2988           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    2989             :     }
    2990             : }
    2991             : 
    2992           1 : void ScOpenCLTest::testMathFormulaLN()
    2993             : {
    2994           1 :     if(!initTestEnv("opencl/math/LN.", XLS, false))
    2995           2 :         return;
    2996           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    2997           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    2998           0 :     rDoc.CalcAll();
    2999             : 
    3000             :     // Check the results of formula cells in the shared formula range.
    3001           0 :     for (SCROW i = 1; i <= 9; ++i)
    3002             :     {
    3003           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    3004           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    3005           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3006             :     }
    3007             : }
    3008             : 
    3009           1 : void ScOpenCLTest::testMathFormulaMod()
    3010             : {
    3011           1 :     if(!initTestEnv("opencl/math/mod.", XLS, false))
    3012           2 :         return;
    3013           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3014           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3015           0 :     rDoc.CalcAll();
    3016             : 
    3017           0 :     for (SCROW i = 0; i <= 15; ++i)
    3018             :     {
    3019           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    3020           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    3021           0 :         if(fExcel == 0.0f)
    3022           0 :             CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, 1e-10);
    3023             :         else
    3024           0 :             CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3025             :     }
    3026             : }
    3027             : 
    3028           1 : void ScOpenCLTest::testMathFormulaRound()
    3029             : {
    3030           1 :     if(!initTestEnv("opencl/math/ROUND.", XLS, false))
    3031           2 :         return;
    3032           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3033           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3034           0 :     rDoc.CalcAll();
    3035             : 
    3036             :     // Check the results of formula cells in the shared formula range.
    3037           0 :     for (SCROW i = 1; i <= 9; ++i)
    3038             :     {
    3039           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    3040           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    3041           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3042             :     }
    3043           0 :     for (SCROW i = 15; i <= 25; ++i)
    3044             :     {
    3045           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    3046           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    3047           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3048             :     }
    3049             : }
    3050             : 
    3051           1 : void ScOpenCLTest::testStatisticalFormulaGammaDist()
    3052             : {
    3053           1 :     if(!initTestEnv("opencl/statistical/GammaDist.", XLS, false))
    3054           2 :         return;
    3055           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3056           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3057           0 :     rDoc.CalcAll();
    3058             : 
    3059             :     // Check the results of formula cells in the shared formula range.
    3060           0 :     for (SCROW i = 1; i <= 19; ++i)
    3061             :     {
    3062           0 :         double fLibre = rDoc.GetValue(ScAddress(4,i,0));
    3063           0 :         double fExcel = rDocRes.GetValue(ScAddress(4,i,0));
    3064           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3065             :     }
    3066             : }
    3067             : 
    3068           1 : void ScOpenCLTest::testStatisticalFormulaGammaInv()
    3069             : {
    3070           1 :     if(!initTestEnv("opencl/statistical/GammaInv.", XLS, false))
    3071           2 :         return;
    3072           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3073           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3074           0 :     rDoc.CalcAll();
    3075             : 
    3076             :     // Check the results of formula cells in the shared formula range.
    3077           0 :     for (SCROW i = 1; i <= 19; ++i)
    3078             :     {
    3079           0 :         double fLibre = rDoc.GetValue(ScAddress(3,i,0));
    3080           0 :         double fExcel = rDocRes.GetValue(ScAddress(3,i,0));
    3081           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3082           0 :         fLibre = rDoc.GetValue(ScAddress(4,i,0));
    3083           0 :         fExcel = rDocRes.GetValue(ScAddress(4,i,0));
    3084           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3085             :     }
    3086             : }
    3087             : 
    3088           1 : void ScOpenCLTest::testStatisticalFormulaFInv()
    3089             : {
    3090           1 :     if(!initTestEnv("opencl/statistical/FInv.", XLS, false))
    3091           2 :         return;
    3092           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3093           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3094           0 :     rDoc.CalcAll();
    3095             : 
    3096             :     // Check the results of formula cells in the shared formula range.
    3097           0 :     for (SCROW i = 1; i <= 19; ++i)
    3098             :     {
    3099           0 :         double fLibre = rDoc.GetValue(ScAddress(3,i,0));
    3100           0 :         double fExcel = rDocRes.GetValue(ScAddress(3,i,0));
    3101           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3102           0 :         fLibre = rDoc.GetValue(ScAddress(4,i,0));
    3103           0 :         fExcel = rDocRes.GetValue(ScAddress(4,i,0));
    3104           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3105             :     }
    3106             : }
    3107             : 
    3108           1 : void ScOpenCLTest::testStatisticalFormulaFTest()
    3109             : {
    3110           1 :     if(!initTestEnv("opencl/statistical/FTest.", XLS, false))
    3111           2 :         return;
    3112           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3113           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3114           0 :     rDoc.CalcAll();
    3115             : 
    3116             :     // Check the results of formula cells in the shared formula range.
    3117           0 :     for (SCROW i = 1; i <= 19; ++i)
    3118             :     {
    3119           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    3120           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    3121           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3122             :     }
    3123             : }
    3124             : 
    3125           1 : void ScOpenCLTest::testStatisticalFormulaB()
    3126             : {
    3127           1 :     if(!initTestEnv("opencl/statistical/B.", XLS, false))
    3128           2 :         return;
    3129           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3130           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3131           0 :     rDoc.CalcAll();
    3132             : 
    3133             :     // Check the results of formula cells in the shared formula range.
    3134           0 :     for (SCROW i = 1; i <= 19; ++i)
    3135             :     {
    3136           0 :         double fLibre = rDoc.GetValue(ScAddress(4,i,0));
    3137           0 :         double fExcel = rDocRes.GetValue(ScAddress(4,i,0));
    3138           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3139           0 :         fLibre = rDoc.GetValue(ScAddress(5,i,0));
    3140           0 :         fExcel = rDocRes.GetValue(ScAddress(5,i,0));
    3141           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3142             :     }
    3143             : }
    3144             : 
    3145           1 : void ScOpenCLTest::testStatisticalFormulaBetaDist()
    3146             : {
    3147           1 :     if(!initTestEnv("opencl/statistical/BetaDist.", ODS, false))
    3148           2 :         return;
    3149           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3150           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3151           0 :     rDoc.CalcAll();
    3152             : 
    3153             :     // Check the results of formula cells in the shared formula range.
    3154           0 :     for (SCROW i = 1; i <= 19; ++i)
    3155             :     {
    3156           0 :         double fLibre = rDoc.GetValue(ScAddress(6,i,0));
    3157           0 :         double fExcel = rDocRes.GetValue(ScAddress(6,i,0));
    3158           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3159           0 :         fLibre = rDoc.GetValue(ScAddress(7,i,0));
    3160           0 :         fExcel = rDocRes.GetValue(ScAddress(7,i,0));
    3161           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3162             :     }
    3163             : }
    3164             : 
    3165           1 : void ScOpenCLTest::testMathFormulaEven()
    3166             : {
    3167           1 :     if(!initTestEnv("opencl/math/even.", XLS, false))
    3168           2 :         return;
    3169           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3170           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3171           0 :     rDoc.CalcAll();
    3172             : 
    3173           0 :     for (SCROW i = 0; i <= 15; ++i)
    3174             :     {
    3175           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    3176           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    3177           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3178             :     }
    3179             : }
    3180             : 
    3181           1 : void ScOpenCLTest::testMathFormulaExp()
    3182             : {
    3183           1 :     if(!initTestEnv("opencl/math/exp.", ODS, false))
    3184           2 :         return;
    3185           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3186           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3187           0 :     rDoc.CalcAll();
    3188             : 
    3189           0 :     for (SCROW i = 0; i <= 15; ++i)
    3190             :     {
    3191           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    3192           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    3193           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3194             :     }
    3195             : }
    3196             : 
    3197           1 : void ScOpenCLTest::testStatisticalFormulaChiDist()
    3198             : {
    3199           1 :     if(!initTestEnv("opencl/statistical/ChiDist.", XLS, false))
    3200           2 :         return;
    3201           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3202           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3203           0 :     rDoc.CalcAll();
    3204             : 
    3205             :     // Check the results of formula cells in the shared formula range.
    3206           0 :     for (SCROW i = 1; i <= 19; ++i)
    3207             :     {
    3208           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    3209           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    3210           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3211             :     }
    3212             : }
    3213             : 
    3214           1 : void ScOpenCLTest::testMathFormulaBitLshift()
    3215             : {
    3216           1 :     if(!initTestEnv("opencl/math/BitLshift.", ODS, false))
    3217           2 :         return;
    3218           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3219           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3220           0 :     rDoc.CalcAll();
    3221             : 
    3222             :     // Verify BitLshift Function
    3223           0 :     for (SCROW i = 1; i <= 20; ++i)
    3224             :     {
    3225           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    3226           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    3227           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3228             :     }
    3229             : }
    3230             : 
    3231           1 : void ScOpenCLTest::testMathFormulaBitRshift()
    3232             : {
    3233           1 :     if(!initTestEnv("opencl/math/BitRshift.", ODS, false))
    3234           2 :         return;
    3235           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3236           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3237           0 :     rDoc.CalcAll();
    3238             : 
    3239             :     // Verify BitRshift Function
    3240           0 :     for (SCROW i = 1; i <= 20; ++i)
    3241             :     {
    3242           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    3243           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    3244           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3245             :     }
    3246             : }
    3247             : 
    3248           1 : void ScOpenCLTest::testMathFormulaFloor()
    3249             : {
    3250           1 :     if(!initTestEnv("opencl/math/floor.", ODS, false))
    3251           2 :         return;
    3252           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3253           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3254           0 :     rDoc.CalcAll();
    3255             : 
    3256           0 :     for (SCROW i = 0; i <= 9; ++i)
    3257             :     {
    3258           0 :         double fLibre = rDoc.GetValue(ScAddress(3,i,0));
    3259           0 :         double fExcel = rDocRes.GetValue(ScAddress(3,i,0));
    3260           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3261             :     }
    3262             : }
    3263             : 
    3264           1 : void ScOpenCLTest::testMathFormulaLog()
    3265             : {
    3266           1 :     if(!initTestEnv("opencl/math/log.", XLS, false))
    3267           2 :         return;
    3268           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3269           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3270           0 :     rDoc.CalcAll();
    3271             : 
    3272           0 :     for (SCROW i = 0; i <= 47; ++i)
    3273             :     {
    3274           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    3275           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    3276           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3277             :     }
    3278             : }
    3279             : 
    3280           1 : void ScOpenCLTest::testSpreadSheetFormulaVLookup()
    3281             : {
    3282           1 :     if(!initTestEnv("opencl/spreadsheet/VLookup.", XLS, false))
    3283           2 :         return;
    3284           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3285           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3286           0 :     rDoc.CalcAll();
    3287             : 
    3288             :     // Check the results of formula cells in the shared formula range.
    3289           0 :     for (SCROW i = 1; i <= 32; ++i)
    3290             :     {
    3291           0 :         double fLibre = rDoc.GetValue(ScAddress(5,i,0));
    3292           0 :         double fExcel = rDocRes.GetValue(ScAddress(5,i,0));
    3293           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3294             :     }
    3295           0 :     for (SCROW i = 40; i <= 50; ++i)
    3296             :     {
    3297           0 :         double fLibre = rDoc.GetValue(ScAddress(5,i,0));
    3298           0 :         double fExcel = rDocRes.GetValue(ScAddress(5,i,0));
    3299           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3300             :     }
    3301             : }
    3302             : 
    3303           1 : void ScOpenCLTest::testStatisticalFormulaChiInv()
    3304             : {
    3305           1 :     if(!initTestEnv("opencl/statistical/ChiInv.", XLS, false))
    3306           2 :         return;
    3307           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3308           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3309           0 :     rDoc.CalcAll();
    3310             : 
    3311             :     // Check the results of formula cells in the shared formula range.
    3312           0 :     for (SCROW i = 1; i <= 10; ++i)
    3313             :     {
    3314           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    3315           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    3316           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3317             :     }
    3318             : }
    3319             : 
    3320           1 : void ScOpenCLTest::testMathFormulaConvert()
    3321             : {
    3322           1 :     if(!initTestEnv("opencl/math/convert.", XLS, false))
    3323           2 :         return;
    3324           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3325           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3326           0 :     rDoc.CalcAll();
    3327             : 
    3328           0 :     for (SCROW i = 0; i <= 3; ++i)
    3329             :     {
    3330           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    3331           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    3332           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3333             :     }
    3334             : }
    3335             : 
    3336           1 : void ScOpenCLTest::testMathCountIfsFormula()
    3337             : {
    3338           1 :     if(!initTestEnv("opencl/math/countifs.", XLS, false))
    3339           2 :         return;
    3340           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3341           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3342           0 :     xDocSh->DoHardRecalc(true);
    3343             : 
    3344           0 :     for (SCROW i = 1; i < 10; ++i)
    3345             :     {
    3346           0 :         double fLibre = rDoc.GetValue(ScAddress(4, i, 0));
    3347           0 :         double fExcel = rDocRes.GetValue(ScAddress(4, i, 0));
    3348           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3349             :     }
    3350             : }
    3351             : 
    3352           1 : void ScOpenCLTest::testMathFormulaBitXor()
    3353             : {
    3354           1 :     if(!initTestEnv("opencl/math/BitXor.", ODS, false))
    3355           2 :         return;
    3356           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3357           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3358           0 :     rDoc.CalcAll();
    3359             : 
    3360             :     // Verify BitXor Function
    3361           0 :     for (SCROW i = 1; i <= 20; ++i)
    3362             :     {
    3363           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    3364           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    3365           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3366             :     }
    3367             : }
    3368             : 
    3369           1 : void ScOpenCLTest::testMathAverageIfsFormula()
    3370             : {
    3371           1 :     if(!initTestEnv("opencl/math/averageifs.", XLS, false))
    3372           2 :         return;
    3373           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3374           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3375             : 
    3376           0 :     xDocSh->DoHardRecalc(true);
    3377             : 
    3378           0 :     for (SCROW i = 1; i <= 11; ++i)
    3379             :     {
    3380           0 :         double fLibre = rDoc.GetValue(ScAddress(4,i,0));
    3381           0 :         double fExcel = rDocRes.GetValue(ScAddress(4,i,0));
    3382           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3383             :     }
    3384             : }
    3385             : 
    3386           1 : void ScOpenCLTest::testMathFormulaLog10()
    3387             : {
    3388           1 :     if(!initTestEnv("opencl/math/log10.", ODS, false))
    3389           2 :         return;
    3390           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3391           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3392           0 :     rDoc.CalcAll();
    3393             : 
    3394           0 :     for (SCROW i = 0; i <= 15; ++i)
    3395             :     {
    3396           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    3397           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    3398           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3399             :     }
    3400             : }
    3401             : 
    3402           1 : void ScOpenCLTest::testMathFormulaCombina()
    3403             : {
    3404           1 :     if(!initTestEnv("opencl/math/combina.", XLS, false))
    3405           2 :         return;
    3406           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3407           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3408           0 :     rDoc.CalcAll();
    3409             : 
    3410           0 :     for (SCROW i = 0; i <= 47; ++i)
    3411             :     {
    3412           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    3413           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    3414           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3415             :     }
    3416             : }
    3417             : 
    3418           1 : void ScOpenCLTest::testMathFormulaCeil()
    3419             : {
    3420           1 :     if(!initTestEnv("opencl/math/Ceil.", ODS, false))
    3421           2 :         return;
    3422           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3423           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3424           0 :     rDoc.CalcAll();
    3425             : 
    3426             :     // Verify Ceiling Function
    3427           0 :     for (SCROW i = 1; i <= 20; ++i)
    3428             :     {
    3429           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    3430           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    3431           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3432             :     }
    3433             : }
    3434             : 
    3435           1 : void ScOpenCLTest::testMathFormulaSqrtPi()
    3436             : {
    3437           1 :     if(!initTestEnv("opencl/math/sqrtpi.", XLS, false))
    3438           2 :         return;
    3439           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3440           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3441           0 :     rDoc.CalcAll();
    3442             : 
    3443           0 :     for (SCROW i = 0; i < 20; ++i)
    3444             :     {
    3445           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    3446           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    3447           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3448             :     }
    3449             : }
    3450             : 
    3451           1 : void ScOpenCLTest::testStatisticalFormulaVarP()
    3452             : {
    3453           1 :     if(!initTestEnv("opencl/statistical/VarP.", XLS, false))
    3454           2 :         return;
    3455           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3456           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3457           0 :     rDoc.CalcAll();
    3458             : 
    3459             :     // Check the results of formula cells in the shared formula range.
    3460           0 :     for (SCROW i = 1; i <= 20; ++i)
    3461             :     {
    3462           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    3463           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    3464           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3465             :     }
    3466             : }
    3467             : 
    3468           1 : void ScOpenCLTest::testStatisticalFormulaStDev()
    3469             : {
    3470           1 :     if(!initTestEnv("opencl/statistical/StDev.", XLS, false))
    3471           2 :         return;
    3472           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3473           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3474           0 :     rDoc.CalcAll();
    3475             : 
    3476             :     // Check the results of formula cells in the shared formula range.
    3477           0 :     for (SCROW i = 1; i <= 20; ++i)
    3478             :     {
    3479           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    3480           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    3481           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3482             :     }
    3483             : }
    3484             : 
    3485           1 : void ScOpenCLTest::testStatisticalFormulaStDevP()
    3486             : {
    3487           1 :     if(!initTestEnv("opencl/statistical/StDevP.", XLS, false))
    3488           2 :         return;
    3489           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3490           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3491           0 :     rDoc.CalcAll();
    3492             : 
    3493             :     // Check the results of formula cells in the shared formula range.
    3494           0 :     for (SCROW i = 1; i <= 20; ++i)
    3495             :     {
    3496           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    3497           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    3498           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3499             :     }
    3500             : }
    3501             : 
    3502           1 : void ScOpenCLTest::testStatisticalFormulaSlope()
    3503             : {
    3504           1 :     if(!initTestEnv("opencl/statistical/Slope.", XLS, false))
    3505           2 :         return;
    3506           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3507           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3508           0 :     rDoc.CalcAll();
    3509             : 
    3510             :     // Check the results of formula cells in the shared formula range.
    3511           0 :     for (SCROW i = 1; i <= 20; ++i)
    3512             :     {
    3513           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    3514           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    3515           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3516             :     }
    3517             : }
    3518             : 
    3519           1 : void ScOpenCLTest::testStatisticalFormulaSTEYX()
    3520             : {
    3521           1 :     if(!initTestEnv("opencl/statistical/STEYX.", XLS, false))
    3522           2 :         return;
    3523           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3524           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3525           0 :     rDoc.CalcAll();
    3526             : 
    3527             :     // Check the results of formula cells in the shared formula range.
    3528           0 :     for (SCROW i = 1; i <= 20; ++i)
    3529             :     {
    3530           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    3531           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    3532           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3533             :     }
    3534             : }
    3535             : 
    3536           1 : void ScOpenCLTest::testStatisticalFormulaZTest()
    3537             : {
    3538           1 :     if(!initTestEnv("opencl/statistical/ZTest.", XLS, false))
    3539           2 :         return;
    3540           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3541           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3542           0 :     rDoc.CalcAll();
    3543             : 
    3544             :     // Check the results of formula cells in the shared formula range.
    3545           0 :     for (SCROW i = 1; i <= 20; ++i)
    3546             :     {
    3547           0 :         double fLibre = rDoc.GetValue(ScAddress(3,i,0));
    3548           0 :         double fExcel = rDocRes.GetValue(ScAddress(3,i,0));
    3549           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3550             :     }
    3551             : }
    3552             : 
    3553           1 : void ScOpenCLTest::testStatisticalFormulaTTest()
    3554             : {
    3555           1 :     if(!initTestEnv("opencl/statistical/TTest.", XLS, false))
    3556           2 :         return;
    3557           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3558           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3559           0 :     rDoc.CalcAll();
    3560             : 
    3561             :     // Check the results of formula cells in the shared formula range.
    3562           0 :     for (SCROW i = 1; i <= 20; ++i)
    3563             :     {
    3564           0 :         double fLibre = rDoc.GetValue(ScAddress(4,i,0));
    3565           0 :         double fExcel = rDocRes.GetValue(ScAddress(4,i,0));
    3566           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3567             :     }
    3568             : }
    3569             : 
    3570           1 : void ScOpenCLTest::testStatisticalFormulaTDist()
    3571             : {
    3572           1 :     if(!initTestEnv("opencl/statistical/TDist.", XLS, false))
    3573           2 :         return;
    3574           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3575           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3576           0 :     rDoc.CalcAll();
    3577             : 
    3578             :     // Check the results of formula cells in the shared formula range.
    3579           0 :     for (SCROW i = 1; i <= 20; ++i)
    3580             :     {
    3581           0 :         double fLibre = rDoc.GetValue(ScAddress(3,i,0));
    3582           0 :         double fExcel = rDocRes.GetValue(ScAddress(3,i,0));
    3583           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3584             :     }
    3585             : }
    3586             : 
    3587           1 : void ScOpenCLTest::testStatisticalFormulaTInv()
    3588             : {
    3589           1 :     if(!initTestEnv("opencl/statistical/TInv.", XLS, false))
    3590           2 :         return;
    3591           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3592           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3593           0 :     rDoc.CalcAll();
    3594             : 
    3595             :     // Check the results of formula cells in the shared formula range.
    3596           0 :     for (SCROW i = 1; i <= 20; ++i)
    3597             :     {
    3598           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    3599           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    3600           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3601             :     }
    3602             : }
    3603             : 
    3604           1 : void ScOpenCLTest::testStatisticalFormulaBinomDist()
    3605             : {
    3606           1 :     if(!initTestEnv("opencl/statistical/BinomDist.", XLS, false))
    3607           2 :         return;
    3608           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3609           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3610           0 :     rDoc.CalcAll();
    3611             : 
    3612             :     // Check the results of formula cells in the shared formula range.
    3613           0 :     for (SCROW i = 1; i <= 9; ++i)
    3614             :     {
    3615           0 :         double fLibre = rDoc.GetValue(ScAddress(4,i,0));
    3616           0 :         double fExcel = rDocRes.GetValue(ScAddress(4,i,0));
    3617           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3618             :     }
    3619             : }
    3620             : 
    3621           1 : void ScOpenCLTest::testMathFormulaProduct()
    3622             : {
    3623           1 :     if(!initTestEnv("opencl/math/product.", XLS, false))
    3624           2 :         return;
    3625           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3626           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3627           0 :     rDoc.CalcAll();
    3628             : 
    3629           0 :     for (SCROW i = 0; i <= 3; ++i)
    3630             :     {
    3631           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    3632           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    3633           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3634             :     }
    3635             : }
    3636             : 
    3637             : #if 0 //Disabled temporarily
    3638             : void ScOpenCLTest::testMathFormulaKombin()
    3639             : {
    3640             :     if(!initTestEnv("opencl/math/Kombin.", ODS, false))
    3641             :         return;
    3642             :     ScDocument& rDoc = xDocSh->GetDocument();
    3643             :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3644             :     rDoc.CalcAll();
    3645             : 
    3646             :     // Verify Combin Function
    3647             :     for (SCROW i = 1; i <= 20; ++i)
    3648             :     {
    3649             :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    3650             :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    3651             :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3652             :     }
    3653             : }
    3654             : #endif
    3655             : 
    3656           1 : void ScOpenCLTest:: testArrayFormulaSumX2MY2()
    3657             : {
    3658           1 :     if(!initTestEnv("opencl/array/SUMX2MY2.", XLS, false))
    3659           2 :         return;
    3660           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3661           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3662           0 :     rDoc.CalcAll();
    3663             : 
    3664           0 :     for (SCROW i = 0; i <= 9; ++i)
    3665             :     {
    3666           0 :         double fLibre = rDoc.GetValue(ScAddress(2, i, 0));
    3667           0 :         double fExcel = rDocRes.GetValue(ScAddress(2, i, 0));
    3668           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3669             :     }
    3670           0 :     for (SCROW i = 20; i <= 26; ++i)
    3671             :     {
    3672           0 :         double fLibre = rDoc.GetValue(ScAddress(2, i, 0));
    3673           0 :         double fExcel = rDocRes.GetValue(ScAddress(2, i, 0));
    3674           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3675             :     }
    3676             : }
    3677             : 
    3678           1 : void ScOpenCLTest::testStatisticalFormulaHypGeomDist()
    3679             : {
    3680           1 :     if(!initTestEnv("opencl/statistical/HypGeomDist.", XLS, false))
    3681           2 :         return;
    3682           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3683           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3684           0 :     rDoc.CalcAll();
    3685             : 
    3686             :     // Check the results of formula cells in the shared formula range.
    3687           0 :     for (SCROW i = 1; i <= 19; ++i)
    3688             :     {
    3689           0 :         double fLibre = rDoc.GetValue(ScAddress(4,i,0));
    3690           0 :         double fExcel = rDocRes.GetValue(ScAddress(4,i,0));
    3691           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3692             :     }
    3693             : }
    3694             : 
    3695           1 : void ScOpenCLTest:: testArrayFormulaSumX2PY2()
    3696             : {
    3697           1 :     if(!initTestEnv("opencl/array/SUMX2PY2.", XLS, false))
    3698           2 :         return;
    3699           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3700           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3701           0 :     rDoc.CalcAll();
    3702             : 
    3703           0 :     for (SCROW i = 0; i <= 9; ++i)
    3704             :     {
    3705           0 :         double fLibre = rDoc.GetValue(ScAddress(2, i, 0));
    3706           0 :         double fExcel = rDocRes.GetValue(ScAddress(2, i, 0));
    3707           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3708             :     }
    3709           0 :     for (SCROW i = 20; i <= 26; ++i)
    3710             :     {
    3711           0 :         double fLibre = rDoc.GetValue(ScAddress(2, i, 0));
    3712           0 :         double fExcel = rDocRes.GetValue(ScAddress(2, i, 0));
    3713           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3714             :     }
    3715             : }
    3716             : 
    3717           1 : void ScOpenCLTest::testStatisticalFormulaBetainv()
    3718             : {
    3719           1 :     if(!initTestEnv("opencl/statistical/Betainv.", XLS, false))
    3720           2 :         return;
    3721           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3722           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3723           0 :     rDoc.CalcAll();
    3724             : 
    3725             :     // Check the results of formula cells in the shared formula range.
    3726           0 :     for (SCROW i = 1; i <= 19; ++i)
    3727             :     {
    3728           0 :         double fLibre = rDoc.GetValue(ScAddress(5,i,0));
    3729           0 :         double fExcel = rDocRes.GetValue(ScAddress(5,i,0));
    3730           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3731             :     }
    3732             : }
    3733             : 
    3734           1 : void ScOpenCLTest::testStatisticalFormulaMina()
    3735             : {
    3736           1 :     if(!initTestEnv("opencl/statistical/Mina.", XLS, false))
    3737           2 :         return;
    3738           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3739           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3740           0 :     rDoc.CalcAll();
    3741             : 
    3742           0 :     for (SCROW i = 0; i <= 9; ++i)
    3743             :     {
    3744           0 :         double fLibre = rDoc.GetValue(ScAddress(6, i, 0));
    3745           0 :         double fExcel = rDocRes.GetValue(ScAddress(6, i, 0));
    3746           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3747             :     }
    3748             : }
    3749             : 
    3750           1 : void ScOpenCLTest:: testArrayFormulaSumXMY2()
    3751             : {
    3752           1 :     if(!initTestEnv("opencl/array/SUMXMY2.", XLS, false))
    3753           2 :         return;
    3754           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3755           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3756           0 :     rDoc.CalcAll();
    3757             : 
    3758           0 :     for (SCROW i = 0; i <= 9; ++i)
    3759             :     {
    3760           0 :         double fLibre = rDoc.GetValue(ScAddress(2, i, 0));
    3761           0 :         double fExcel = rDocRes.GetValue(ScAddress(2, i, 0));
    3762           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3763             :     }
    3764           0 :     for (SCROW i = 20; i <= 26; ++i)
    3765             :     {
    3766           0 :         double fLibre = rDoc.GetValue(ScAddress(2, i, 0));
    3767           0 :         double fExcel = rDocRes.GetValue(ScAddress(2, i, 0));
    3768           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3769             :     }
    3770             : }
    3771             : 
    3772           1 : void ScOpenCLTest::testStatisticalFormulaCountA()
    3773             : {
    3774           1 :     if(!initTestEnv("opencl/statistical/counta.", XLS, false))
    3775           2 :         return;
    3776           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3777           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3778           0 :     rDoc.CalcAll();
    3779             : 
    3780           0 :     for (SCROW i = 0; i <= 9; ++i)
    3781             :     {
    3782           0 :         double fLibre = rDoc.GetValue(ScAddress(6, i, 0));
    3783           0 :         double fExcel = rDocRes.GetValue(ScAddress(6, i, 0));
    3784           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3785             :     }
    3786             : }
    3787             : 
    3788           1 : void ScOpenCLTest::testStatisticalFormulaMaxa()
    3789             : {
    3790           1 :     if(!initTestEnv("opencl/statistical/Maxa.", XLS, false))
    3791           2 :         return;
    3792           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3793           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3794           0 :     rDoc.CalcAll();
    3795             : 
    3796           0 :     for (SCROW i = 0; i <= 9; ++i)
    3797             :     {
    3798           0 :         double fLibre = rDoc.GetValue(ScAddress(6, i, 0));
    3799           0 :         double fExcel = rDocRes.GetValue(ScAddress(6, i, 0));
    3800           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3801             :     }
    3802             : }
    3803             : 
    3804           1 : void ScOpenCLTest::testMathFormulaSumProduct()
    3805             : {
    3806           1 :     if(!initTestEnv("opencl/math/sumproduct_mixSliding.", XLS, false))
    3807           2 :         return;
    3808           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3809           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3810           0 :     rDoc.CalcAll();
    3811             : 
    3812             :     // Check the results of formula cells in the shared formula range.
    3813           0 :     for (SCROW i = 0; i <= 9; ++i)
    3814             :     {
    3815           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    3816           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    3817           0 :         if ( i == 1 )
    3818           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(82,  fLibre, fabs(0.0001*fExcel));
    3819           0 :         else if ( i == 2 )
    3820           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(113, fLibre, fabs(0.0001*fExcel));
    3821           0 :         else if ( i == 4 )
    3822           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(175, fLibre, fabs(0.0001*fExcel));
    3823           0 :         else if ( i == 5 )
    3824           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(206, fLibre, fabs(0.0001*fExcel));
    3825           0 :         else if ( i == 6 )
    3826           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(237, fLibre, fabs(0.0001*fExcel));
    3827           0 :         else if ( i == 7 )
    3828           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(268, fLibre, fabs(0.0001*fExcel));
    3829             :         else
    3830           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3831             :     }
    3832             : }
    3833             : 
    3834           1 : void ScOpenCLTest::testMathFormulaAverageIf()
    3835             : {
    3836           1 :     if(!initTestEnv("opencl/math/averageif.", XLS, false))
    3837           2 :         return;
    3838           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3839           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3840           0 :     rDoc.CalcAll();
    3841             : 
    3842           0 :     for (SCROW i = 2; i <= 21; ++i)
    3843             :     {
    3844           0 :         double fLibre = rDoc.GetValue(ScAddress(6,i,0));
    3845           0 :         double fExcel = rDocRes.GetValue(ScAddress(6,i,0));
    3846           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3847             :     }
    3848             : }
    3849             : 
    3850           1 : void ScOpenCLTest::testStatisticalFormulaAverageA()
    3851             : {
    3852           1 :     if(!initTestEnv("opencl/statistical/AverageA.", XLS, false))
    3853           2 :         return;
    3854           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3855           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3856           0 :     rDoc.CalcAll();
    3857             : 
    3858           0 :     for (SCROW i = 0; i <= 9; ++i)
    3859             :     {
    3860           0 :         double fLibre = rDoc.GetValue(ScAddress(6, i, 0));
    3861           0 :         double fExcel = rDocRes.GetValue(ScAddress(6, i, 0));
    3862           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3863             :     }
    3864             : }
    3865             : 
    3866           1 : void ScOpenCLTest:: testLogicalFormulaAnd()
    3867             : {
    3868           1 :     if(!initTestEnv("opencl/logical/and.", XLS, false))
    3869           2 :         return;
    3870           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3871           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3872           0 :     rDoc.CalcAll();
    3873             : 
    3874           0 :     for (SCROW i = 1; i <= 20; ++i)
    3875             :     {
    3876           0 :         double fLibre = rDoc.GetValue(ScAddress(2, i, 0));
    3877           0 :         double fExcel = rDocRes.GetValue(ScAddress(2, i, 0));
    3878           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3879             :     }
    3880           0 :     for (SCROW i = 1; i <= 20; ++i)
    3881             :     {
    3882           0 :         double fLibre = rDoc.GetValue(ScAddress(3, i, 0));
    3883           0 :         double fExcel = rDocRes.GetValue(ScAddress(3, i, 0));
    3884           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3885             :     }
    3886             : }
    3887             : 
    3888           1 : void ScOpenCLTest::testStatisticalFormulaVarA()
    3889             : {
    3890           1 :     if(!initTestEnv("opencl/statistical/VarA.", XLS, false))
    3891           2 :         return;
    3892           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3893           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3894           0 :     rDoc.CalcAll();
    3895             : 
    3896             :     // Check the results of formula cells in the shared formula range.
    3897           0 :     for (SCROW i = 1; i <= 20; ++i)
    3898             :     {
    3899           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    3900           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    3901           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3902             :     }
    3903             : }
    3904             : 
    3905           1 : void ScOpenCLTest::testStatisticalFormulaVarPA()
    3906             : {
    3907           1 :     if(!initTestEnv("opencl/statistical/VarPA.", XLS, false))
    3908           2 :         return;
    3909           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3910           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3911           0 :     rDoc.CalcAll();
    3912             :     // Check the results of formula cells in the shared formula range.
    3913           0 :     for (SCROW i = 1; i <= 20; ++i)
    3914             :     {
    3915           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    3916           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    3917           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3918             :     }
    3919             : }
    3920             : 
    3921           1 : void ScOpenCLTest::testStatisticalFormulaStDevA()
    3922             : {
    3923           1 :     if(!initTestEnv("opencl/statistical/StDevA.", XLS, false))
    3924           2 :         return;
    3925           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3926           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3927           0 :     rDoc.CalcAll();
    3928             : 
    3929             :     // Check the results of formula cells in the shared formula range.
    3930           0 :     for (SCROW i = 1; i <= 20; ++i)
    3931             :     {
    3932           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    3933           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    3934           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3935             :     }
    3936             : }
    3937             : 
    3938           1 : void ScOpenCLTest::testStatisticalFormulaStDevPA()
    3939             : {
    3940           1 :     if(!initTestEnv("opencl/statistical/StDevPA.", XLS, false))
    3941           2 :         return;
    3942           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3943           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3944           0 :     rDoc.CalcAll();
    3945             : 
    3946             :     // Check the results of formula cells in the shared formula range.
    3947           0 :     for (SCROW i = 1; i <= 20; ++i)
    3948             :     {
    3949           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    3950           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    3951           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    3952             :     }
    3953             : }
    3954             : 
    3955           1 : void ScOpenCLTest:: testFinancialMDurationFormula1()
    3956             : {
    3957           1 :     if(!initTestEnv("opencl/financial/MDuration1.", XLS, false))
    3958           2 :         return;
    3959           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3960           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3961           0 :     rDoc.CalcAll();
    3962             : 
    3963           0 :     for (SCROW i = 0; i <= 9; ++i)
    3964             :     {
    3965           0 :         double fLibre = rDoc.GetValue(ScAddress(6, i, 0));
    3966           0 :         double fExcel = rDocRes.GetValue(ScAddress(6, i, 0));
    3967           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel,fLibre,fabs(0.00000000001*fExcel));
    3968             :     }
    3969             : }
    3970             : 
    3971           1 : void ScOpenCLTest::testMathFormulaSumProduct2()
    3972             : {
    3973           1 :     if(!initTestEnv("opencl/math/sumproductTest.", XLS, false))
    3974           2 :         return;
    3975           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3976           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3977           0 :     rDoc.CalcAll();
    3978             : 
    3979             :     // Check the results of formula cells in the shared formula range.
    3980           0 :     for (SCROW i = 2; i <= 12; ++i)
    3981             :     {
    3982           0 :         double fLibre = rDoc.GetValue(ScAddress(4,i,1));
    3983           0 :         double fExcel = rDocRes.GetValue(ScAddress(4,i,1));
    3984           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel,  fLibre, fabs(0.0001*fExcel));
    3985             :     }
    3986             : }
    3987             : 
    3988           1 : void ScOpenCLTest:: testStatisticalParallelCountBug()
    3989             : {
    3990           1 :     if(!initTestEnv("opencl/statistical/parallel_count_bug_243.", ODS, false))
    3991           2 :         return;
    3992           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    3993           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    3994           0 :     rDoc.CalcAll();
    3995             : 
    3996           0 :     for (SCROW i = 0; i < 13; ++i)
    3997             :     {
    3998           0 :         double fLibre = rDoc.GetValue(ScAddress(2, i, 0));
    3999           0 :         double fExcel = rDocRes.GetValue(ScAddress(2, i, 0));
    4000           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4001             :     }
    4002             : }
    4003             : 
    4004           1 : void ScOpenCLTest:: testLogicalFormulaOr()
    4005             : {
    4006           1 :     if(!initTestEnv("opencl/logical/or.", XLS, false))
    4007           2 :         return;
    4008           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4009           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4010           0 :     rDoc.CalcAll();
    4011             : 
    4012           0 :     for (SCROW i = 0; i < 20; ++i)
    4013             :     {
    4014           0 :         double fLibre = rDoc.GetValue(ScAddress(2, i, 0));
    4015           0 :         double fExcel = rDocRes.GetValue(ScAddress(2, i, 0));
    4016           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4017             :     }
    4018             : }
    4019             : 
    4020           1 : void ScOpenCLTest:: testLogicalFormulaNot()
    4021             : {
    4022           1 :     if(!initTestEnv("opencl/logical/not.", XLS, false))
    4023           2 :         return;
    4024           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4025           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4026           0 :     rDoc.CalcAll();
    4027             : 
    4028           0 :     for (SCROW i = 0; i < 3000; ++i)
    4029             :     {
    4030           0 :         double fLibre = rDoc.GetValue(ScAddress(1, i, 0));
    4031           0 :         double fExcel = rDocRes.GetValue(ScAddress(1, i, 0));
    4032           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4033             :     }
    4034             : }
    4035             : 
    4036           1 : void ScOpenCLTest:: testLogicalFormulaXor()
    4037             : {
    4038           1 :     if(!initTestEnv("opencl/logical/xor.", XLS, false))
    4039           2 :         return;
    4040           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4041           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4042           0 :     rDoc.CalcAll();
    4043             : 
    4044           0 :     for (SCROW i = 0; i < 3000; ++i)
    4045             :     {
    4046           0 :         double fLibre = rDoc.GetValue(ScAddress(1, i, 0));
    4047           0 :         double fExcel = rDocRes.GetValue(ScAddress(1, i, 0));
    4048           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4049             :     }
    4050             : }
    4051             : 
    4052           1 : void ScOpenCLTest::testDatabaseFormulaDcount()
    4053             : {
    4054           1 :     if(!initTestEnv("opencl/database/dcount.", XLS, false))
    4055           2 :         return;
    4056           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4057           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4058           0 :     rDoc.CalcAll();
    4059             : 
    4060             :     // Check the results of formula cells in the shared formula range.
    4061           0 :     for (SCROW i = 1; i <= 32; ++i)
    4062             :     {
    4063           0 :         double fLibre = rDoc.GetValue(ScAddress(9,i,0));
    4064           0 :         double fExcel = rDocRes.GetValue(ScAddress(10,i,0));
    4065           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.00000000001));
    4066             :     }
    4067             : }
    4068             : 
    4069           1 : void ScOpenCLTest::testDatabaseFormulaDcountA()
    4070             : {
    4071           1 :     if(!initTestEnv("opencl/database/dcountA.", XLS, false))
    4072           2 :         return;
    4073           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4074           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4075           0 :     rDoc.CalcAll();
    4076             : 
    4077             :     // Check the results of formula cells in the shared formula range.
    4078           0 :     for (SCROW i = 1; i <= 32; ++i)
    4079             :     {
    4080           0 :         double fLibre = rDoc.GetValue(ScAddress(9,i,0));
    4081           0 :         double fExcel = rDocRes.GetValue(ScAddress(10,i,0));
    4082           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.00000000001));
    4083             :     }
    4084             : }
    4085             : 
    4086           1 : void ScOpenCLTest::testDatabaseFormulaDmax()
    4087             : {
    4088           1 :     if(!initTestEnv("opencl/database/dmax.", XLS, false))
    4089           2 :         return;
    4090           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4091           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4092           0 :     rDoc.CalcAll();
    4093             : 
    4094             :     // Check the results of formula cells in the shared formula range.
    4095           0 :     for (SCROW i = 1; i <= 32; ++i)
    4096             :     {
    4097           0 :         double fLibre = rDoc.GetValue(ScAddress(9,i,0));
    4098           0 :         double fExcel = rDocRes.GetValue(ScAddress(10,i,0));
    4099           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.00000000001));
    4100             :     }
    4101             : }
    4102             : 
    4103           1 : void ScOpenCLTest::testDatabaseFormulaDmin()
    4104             : {
    4105           1 :     if(!initTestEnv("opencl/database/dmin.", XLS, false))
    4106           2 :         return;
    4107           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4108           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4109           0 :     rDoc.CalcAll();
    4110             : 
    4111             :     // Check the results of formula cells in the shared formula range.
    4112           0 :     for (SCROW i = 1; i <= 32; ++i)
    4113             :     {
    4114           0 :         double fLibre = rDoc.GetValue(ScAddress(9,i,0));
    4115           0 :         double fExcel = rDocRes.GetValue(ScAddress(10,i,0));
    4116           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.00000000001));
    4117             :     }
    4118             : }
    4119             : 
    4120           1 : void ScOpenCLTest::testDatabaseFormulaDproduct()
    4121             : {
    4122           1 :     if(!initTestEnv("opencl/database/dproduct.", XLS, false))
    4123           2 :         return;
    4124           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4125           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4126           0 :     rDoc.CalcAll();
    4127             : 
    4128             :     // Check the results of formula cells in the shared formula range.
    4129           0 :     for (SCROW i = 1; i <= 32; ++i)
    4130             :     {
    4131           0 :         double fLibre = rDoc.GetValue(ScAddress(9,i,0));
    4132           0 :         double fExcel = rDocRes.GetValue(ScAddress(10,i,0));
    4133           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.00000000001));
    4134             :     }
    4135             : }
    4136             : 
    4137           1 : void ScOpenCLTest::testDatabaseFormulaDaverage()
    4138             : {
    4139           1 :     if(!initTestEnv("opencl/database/daverage.", XLS, false))
    4140           2 :         return;
    4141           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4142           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4143           0 :     rDoc.CalcAll();
    4144             : 
    4145             :     // Check the results of formula cells in the shared formula range.
    4146           0 :     for (SCROW i = 1; i <= 32; ++i)
    4147             :     {
    4148           0 :         double fLibre = rDoc.GetValue(ScAddress(9,i,0));
    4149           0 :         double fExcel = rDocRes.GetValue(ScAddress(10,i,0));
    4150             :         //CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4151           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.00000000001));
    4152             :     }
    4153             : }
    4154             : 
    4155           1 : void ScOpenCLTest::testDatabaseFormulaDstdev()
    4156             : {
    4157           1 :     if(!initTestEnv("opencl/database/dstdev.", XLS, false))
    4158           2 :         return;
    4159           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4160           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4161           0 :     rDoc.CalcAll();
    4162             : 
    4163             :     // Check the results of formula cells in the shared formula range.
    4164           0 :     for (SCROW i = 1; i <= 32; ++i)
    4165             :     {
    4166           0 :         double fLibre = rDoc.GetValue(ScAddress(9,i,0));
    4167           0 :         double fExcel = rDocRes.GetValue(ScAddress(10,i,0));
    4168             :         //CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4169           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.00000000001));
    4170             :     }
    4171             : }
    4172             : 
    4173           1 : void ScOpenCLTest::testDatabaseFormulaDstdevp()
    4174             : {
    4175           1 :     if(!initTestEnv("opencl/database/dstdevp.", XLS, false))
    4176           2 :         return;
    4177           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4178           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4179           0 :     rDoc.CalcAll();
    4180             : 
    4181             :     // Check the results of formula cells in the shared formula range.
    4182           0 :     for (SCROW i = 1; i <= 32; ++i)
    4183             :     {
    4184           0 :         double fLibre = rDoc.GetValue(ScAddress(9,i,0));
    4185           0 :         double fExcel = rDocRes.GetValue(ScAddress(10,i,0));
    4186             :         //CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4187           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.00000000001));
    4188             :     }
    4189             : }
    4190             : 
    4191           1 : void ScOpenCLTest::testDatabaseFormulaDsum()
    4192             : {
    4193           1 :     if(!initTestEnv("opencl/database/dsum.", XLS, false))
    4194           2 :         return;
    4195           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4196           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4197           0 :     rDoc.CalcAll();
    4198             : 
    4199             :     // Check the results of formula cells in the shared formula range.
    4200           0 :     for (SCROW i = 1; i <= 32; ++i)
    4201             :     {
    4202           0 :         double fLibre = rDoc.GetValue(ScAddress(9,i,0));
    4203           0 :         double fExcel = rDocRes.GetValue(ScAddress(10,i,0));
    4204             :         //CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4205           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.00000000001));
    4206             :     }
    4207             : }
    4208             : 
    4209           1 : void ScOpenCLTest::testDatabaseFormulaDvar()
    4210             : {
    4211           1 :     if(!initTestEnv("opencl/database/dvar.", XLS, false))
    4212           2 :         return;
    4213           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4214           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4215           0 :     rDoc.CalcAll();
    4216             : 
    4217             :     // Check the results of formula cells in the shared formula range.
    4218           0 :     for (SCROW i = 1; i <= 32; ++i)
    4219             :     {
    4220           0 :         double fLibre = rDoc.GetValue(ScAddress(9,i,0));
    4221           0 :         double fExcel = rDocRes.GetValue(ScAddress(10,i,0));
    4222             :         //CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4223           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.00000000001));
    4224             :     }
    4225             : }
    4226             : 
    4227           1 : void ScOpenCLTest::testDatabaseFormulaDvarp()
    4228             : {
    4229           1 :     if(!initTestEnv("opencl/database/dvarp.", XLS, false))
    4230           2 :         return;
    4231           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4232           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4233           0 :     rDoc.CalcAll();
    4234             : 
    4235             :     // Check the results of formula cells in the shared formula range.
    4236           0 :     for (SCROW i = 1; i <= 32; ++i)
    4237             :     {
    4238           0 :         double fLibre = rDoc.GetValue(ScAddress(9,i,0));
    4239           0 :         double fExcel = rDocRes.GetValue(ScAddress(10,i,0));
    4240           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.00000000001));
    4241             :     }
    4242             : }
    4243             : 
    4244           1 : void ScOpenCLTest::testMathFormulaRoundUp()
    4245             : {
    4246           1 :     if(!initTestEnv("opencl/math/roundup.", XLS, false))
    4247           2 :         return;
    4248           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4249           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4250           0 :     rDoc.CalcAll();
    4251             : 
    4252             :     // Check the results of formula cells in the shared formula range.
    4253           0 :     for (SCROW i = 1; i <= 9; ++i)
    4254             :     {
    4255           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    4256           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    4257           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4258             :     }
    4259             : }
    4260             : 
    4261           1 : void ScOpenCLTest::testMathFormulaRoundDown()
    4262             : {
    4263           1 :     if(!initTestEnv("opencl/math/rounddown.", XLS, false))
    4264           2 :         return;
    4265           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4266           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4267           0 :     rDoc.CalcAll();
    4268             : 
    4269             :     // Check the results of formula cells in the shared formula range.
    4270           0 :     for (SCROW i = 1; i <= 9; ++i)
    4271             :     {
    4272           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    4273           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    4274           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4275             :     }
    4276             : }
    4277             : 
    4278           1 : void ScOpenCLTest::testMathFormulaInt()
    4279             : {
    4280           1 :     if(!initTestEnv("opencl/math/int.", XLS, false))
    4281           2 :         return;
    4282           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4283           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4284           0 :     rDoc.CalcAll();
    4285             : 
    4286             :     // Check the results of formula cells in the shared formula range.
    4287           0 :     for (SCROW i = 1; i <= 9; ++i)
    4288             :     {
    4289           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    4290           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    4291           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4292             :     }
    4293             : }
    4294             : 
    4295           1 : void ScOpenCLTest::testMathFormulaRadians()
    4296             : {
    4297           1 :     if(!initTestEnv("opencl/math/radians.", XLS, false))
    4298           2 :         return;
    4299           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4300           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4301           0 :     rDoc.CalcAll();
    4302             : 
    4303             :     // Check the results of formula cells in the shared formula range.
    4304           0 :     for (SCROW i = 1; i <= 9; ++i)
    4305             :     {
    4306           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    4307           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    4308           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4309             :     }
    4310             : }
    4311             : 
    4312           1 : void ScOpenCLTest::testMathFormulaDegrees()
    4313             : {
    4314           1 :     if(!initTestEnv("opencl/math/degrees.", XLS, false))
    4315           2 :         return;
    4316           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4317           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4318           0 :     rDoc.CalcAll();
    4319             : 
    4320           0 :     for (SCROW i = 0; i <= 200; ++i)
    4321             :     {
    4322           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    4323           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    4324           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4325             :     }
    4326             : }
    4327             : 
    4328           1 : void ScOpenCLTest::testMathFormulaIsEven()
    4329             : {
    4330           1 :     if(!initTestEnv("opencl/math/iseven.", XLS, false))
    4331           2 :         return;
    4332           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4333           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4334           0 :     rDoc.CalcAll();
    4335             : 
    4336             :     // Check the results of formula cells in the shared formula range.
    4337           0 :     for (SCROW i = 1; i <= 9; ++i)
    4338             :     {
    4339           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    4340           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    4341           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4342             :     }
    4343             : }
    4344             : 
    4345           1 : void ScOpenCLTest::testMathFormulaCountIf()
    4346             : {
    4347           1 :     if(!initTestEnv("opencl/math/countif.", XLS, false))
    4348           2 :         return;
    4349           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4350           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4351           0 :     rDoc.CalcAll();
    4352             : 
    4353           0 :     for (SCROW i = 0; i <= 26; ++i)
    4354             :     {
    4355           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    4356           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    4357           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4358             :     }
    4359             : }
    4360             : 
    4361           1 : void ScOpenCLTest::testMathFormulaIsOdd()
    4362             : {
    4363           1 :     if(!initTestEnv("opencl/math/isodd.", XLS, false))
    4364           2 :         return;
    4365           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4366           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4367           0 :     rDoc.CalcAll();
    4368             : 
    4369             :     // Check the results of formula cells in the shared formula range.
    4370           0 :     for (SCROW i = 1; i <= 9; ++i)
    4371             :     {
    4372           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    4373           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    4374           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4375             :     }
    4376             : }
    4377             : 
    4378           1 : void ScOpenCLTest::testMathFormulaFact()
    4379             : {
    4380           1 :     if(!initTestEnv("opencl/math/fact.", XLS, false))
    4381           2 :         return;
    4382           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4383           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4384           0 :     rDoc.CalcAll();
    4385             : 
    4386           0 :     for (SCROW i = 0; i <= 18; ++i)
    4387             :     {
    4388           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    4389           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    4390           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4391             :     }
    4392             : }
    4393             : 
    4394           1 : void ScOpenCLTest::testMathFormulaSEC()
    4395             : {
    4396           1 :     if(!initTestEnv("opencl/math/sec.", ODS, false))
    4397           2 :         return;
    4398           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4399           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4400           0 :     rDoc.CalcAll();
    4401             : 
    4402           0 :     for (SCROW i = 0; i <= 15; ++i)
    4403             :     {
    4404           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    4405           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    4406           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4407             :     }
    4408             : }
    4409             : 
    4410           1 : void ScOpenCLTest::testMathFormulaSECH()
    4411             : {
    4412           1 :     if(!initTestEnv("opencl/math/sech.", ODS, false))
    4413           2 :         return;
    4414           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4415           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4416           0 :     rDoc.CalcAll();
    4417             : 
    4418           0 :     for (SCROW i = 0; i <= 15; ++i)
    4419             :     {
    4420           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    4421           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    4422           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4423             :     }
    4424             : }
    4425             : 
    4426           1 : void ScOpenCLTest::testMathFormulaMROUND()
    4427             : {
    4428           1 :     if(!initTestEnv("opencl/math/MROUND.", XLS, false))
    4429           2 :         return;
    4430           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4431           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4432           0 :     rDoc.CalcAll();
    4433             : 
    4434           0 :     for (SCROW i = 0; i <= 13; ++i)
    4435             :     {
    4436           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    4437           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    4438           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4439             :     }
    4440             : }
    4441             : 
    4442           1 : void ScOpenCLTest::testMathFormulaQuotient()
    4443             : {
    4444           1 :     if(!initTestEnv("opencl/math/Quotient.", ODS, false))
    4445           2 :         return;
    4446           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4447           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4448           0 :     rDoc.CalcAll();
    4449             : 
    4450             :     // Verify BitAnd Function
    4451           0 :     for (SCROW i = 1; i <= 20; ++i)
    4452             :     {
    4453           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    4454           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    4455           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4456             :     }
    4457             : }
    4458             : 
    4459           1 : void ScOpenCLTest::testMathFormulaSeriesSum()
    4460             : {
    4461           1 :     if(!initTestEnv("opencl/math/seriessum.", XLS, false))
    4462           2 :         return;
    4463           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4464           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4465           0 :     rDoc.CalcAll();
    4466             : 
    4467           0 :     for (SCROW i = 0; i <= 15; ++i)
    4468             :     {
    4469           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    4470           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    4471           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4472             :     }
    4473             : }
    4474             : 
    4475           1 : void ScOpenCLTest::testMathFormulaSumIf()
    4476             : {
    4477           1 :     if(!initTestEnv("opencl/math/sumif.", XLS, false))
    4478           2 :         return;
    4479           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4480           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4481           0 :     rDoc.CalcAll();
    4482             : 
    4483           0 :     for (SCROW i = 0; i <= 26; ++i)
    4484             :     {
    4485           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    4486           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    4487           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4488             :     }
    4489             : }
    4490             : 
    4491           1 : void ScOpenCLTest::testAddInFormulaBesseLJ()
    4492             : {
    4493           1 :     if(!initTestEnv("opencl/addin/besselj.", XLS, false))
    4494           2 :         return;
    4495           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4496           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4497           0 :     rDoc.CalcAll();
    4498             : 
    4499             :     // Check the results of formula cells in the shared formula range.
    4500           0 :     for (SCROW i = 1; i <= 20; ++i)
    4501             :     {
    4502           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    4503           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    4504           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4505             :     }
    4506             : }
    4507             : 
    4508           1 : void ScOpenCLTest::testStatisticalFormulaAvedev()
    4509             : {
    4510           1 :     if(!initTestEnv("opencl/statistical/Avedev.", XLS, false))
    4511           2 :         return;
    4512           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4513           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4514           0 :     rDoc.CalcAll();
    4515             : 
    4516             :     // Check the results of formula cells in the shared formula range.
    4517           0 :     for (SCROW i = 1; i <= 19; ++i)
    4518             :     {
    4519           0 :         double fLibre = rDoc.GetValue(ScAddress(3,i,0));
    4520           0 :         double fExcel = rDocRes.GetValue(ScAddress(3,i,0));
    4521           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4522             :     }
    4523             : }
    4524             : 
    4525           1 : void ScOpenCLTest::testNegSub()
    4526             : {
    4527           1 :     if(!initTestEnv("opencl/math/NegSub.", XLS, false))
    4528           2 :         return;
    4529           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4530           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4531           0 :     rDoc.CalcAll();
    4532             : 
    4533             :     // Check the results of formula cells in the shared formula range.
    4534           0 :     for (SCROW i = 0; i <= 9; ++i)
    4535             :     {
    4536           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    4537           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    4538           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4539             :     }
    4540             : }
    4541             : 
    4542           1 : void ScOpenCLTest::testMathFormulaAverageIf_Mix()
    4543             : {
    4544           1 :     if(!initTestEnv("opencl/math/averageif_mix.", XLS, false))
    4545           2 :         return;
    4546           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4547           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4548           0 :     rDoc.CalcAll();
    4549             : 
    4550           0 :     for (SCROW i = 0; i <= 9; ++i)
    4551             :     {
    4552           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    4553           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    4554           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4555             :     }
    4556             : }
    4557             : 
    4558           1 : void ScOpenCLTest::testStatisticalFormulaKurt1()
    4559             : {
    4560           1 :     if(!initTestEnv("opencl/statistical/Kurt1.", XLS, false))
    4561           2 :         return;
    4562           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4563           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4564           0 :     rDoc.CalcAll();
    4565             : 
    4566             :     // Check the results of formula cells in the shared formula range.
    4567           0 :     for (SCROW i = 1; i <= 19; ++i)
    4568             :     {
    4569           0 :         double fLibre = rDoc.GetValue(ScAddress(2,i,0));
    4570           0 :         double fExcel = rDocRes.GetValue(ScAddress(2,i,0));
    4571           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4572             :     }
    4573             : }
    4574             : 
    4575           1 : void ScOpenCLTest::testStatisticalFormulaHarMean1()
    4576             : {
    4577           1 :     if(!initTestEnv("opencl/statistical/HarMean1.", XLS, false))
    4578           2 :         return;
    4579           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4580           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4581           0 :     rDoc.CalcAll();
    4582             : 
    4583             :     // Check the results of formula cells in the shared formula range.
    4584           0 :     for (SCROW i = 1; i <= 19; ++i)
    4585             :     {
    4586           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    4587           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    4588           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4589             :     }
    4590             : }
    4591             : 
    4592           1 : void ScOpenCLTest::testStatisticalFormulaVarA1()
    4593             : {
    4594           1 :     if(!initTestEnv("opencl/statistical/VarA1.", XLS, false))
    4595           2 :         return;
    4596           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4597           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4598           0 :     rDoc.CalcAll();
    4599             : 
    4600             :     // Check the results of formula cells in the shared formula range.
    4601           0 :     for (SCROW i = 1; i <= 20; ++i)
    4602             :     {
    4603           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    4604           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    4605           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4606             :     }
    4607             : }
    4608             : 
    4609           1 : void ScOpenCLTest::testStatisticalFormulaVarPA1()
    4610             : {
    4611           1 :     if(!initTestEnv("opencl/statistical/VarPA1.", XLS, false))
    4612           2 :         return;
    4613           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4614           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4615           0 :     rDoc.CalcAll();
    4616             : 
    4617             :     // Check the results of formula cells in the shared formula range.
    4618           0 :     for (SCROW i = 1; i <= 20; ++i)
    4619             :     {
    4620           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    4621           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    4622           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4623             :     }
    4624             : }
    4625             : 
    4626           1 : void ScOpenCLTest::testStatisticalFormulaStDevA1()
    4627             : {
    4628           1 :     if(!initTestEnv("opencl/statistical/StDevA1.", XLS, false))
    4629           2 :         return;
    4630           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4631           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4632           0 :     rDoc.CalcAll();
    4633             : 
    4634             :     // Check the results of formula cells in the shared formula range.
    4635           0 :     for (SCROW i = 1; i <= 20; ++i)
    4636             :     {
    4637           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    4638           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    4639           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4640             :     }
    4641             : }
    4642             : 
    4643           1 : void ScOpenCLTest::testStatisticalFormulaStDevPA1()
    4644             : {
    4645           1 :     if(!initTestEnv("opencl/statistical/StDevPA1.", XLS, false))
    4646           2 :         return;
    4647           0 :     ScDocument& rDoc = xDocSh->GetDocument();
    4648           0 :     ScDocument& rDocRes = xDocShRes->GetDocument();
    4649           0 :     rDoc.CalcAll();
    4650             : 
    4651             :     // Check the results of formula cells in the shared formula range.
    4652           0 :     for (SCROW i = 1; i <= 20; ++i)
    4653             :     {
    4654           0 :         double fLibre = rDoc.GetValue(ScAddress(1,i,0));
    4655           0 :         double fExcel = rDocRes.GetValue(ScAddress(1,i,0));
    4656           0 :         CPPUNIT_ASSERT_DOUBLES_EQUAL(fExcel, fLibre, fabs(0.0001*fExcel));
    4657             :     }
    4658             : }
    4659             : 
    4660         223 : ScOpenCLTest::ScOpenCLTest()
    4661         223 :       : ScBootstrapFixture( "/sc/qa/unit/data" )
    4662             : {
    4663         223 : }
    4664             : 
    4665         223 : void ScOpenCLTest::setUp()
    4666             : {
    4667         223 :     test::BootstrapFixture::setUp();
    4668             :     // This is a bit of a fudge, we do this to ensure that ScGlobals::ensure,
    4669             :     // which is a private symbol to us, gets called
    4670         446 :     m_xCalcComponent =
    4671         446 :         getMultiServiceFactory()->
    4672         446 :             createInstance("com.sun.star.comp.Calc.SpreadsheetDocument");
    4673         223 :     CPPUNIT_ASSERT_MESSAGE("no calc component!", m_xCalcComponent.is());
    4674         223 : }
    4675             : 
    4676         223 : void ScOpenCLTest::tearDown()
    4677             : {
    4678             :     //close test env
    4679         223 :     if(xDocSh.Is())
    4680           0 :         xDocSh->DoClose();
    4681         223 :     if(xDocShRes.Is())
    4682           0 :         xDocShRes->DoClose();
    4683             : 
    4684             :     uno::Reference< lang::XComponent >
    4685         223 :         ( m_xCalcComponent, UNO_QUERY_THROW )->dispose();
    4686         223 :     test::BootstrapFixture::tearDown();
    4687         223 : }
    4688             : 
    4689           1 : CPPUNIT_TEST_SUITE_REGISTRATION(ScOpenCLTest);
    4690             : 
    4691           4 : CPPUNIT_PLUGIN_IMPLEMENT();
    4692             : 
    4693             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.11