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: */
|