summaryrefslogtreecommitdiffstats
path: root/sc/qa/unit/functions_array.cxx
blob: 88a4b70d7c29a788a7616e6b216994027d07f279 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include "functions_test.hxx"

class ArrayFunctionsTest : public FunctionsTest
{
public:
    ArrayFunctionsTest();

    void testArrayFormulasFODS();
    void testDubiousArrayFormulasFODS();

    CPPUNIT_TEST_SUITE(ArrayFunctionsTest);
    CPPUNIT_TEST(testArrayFormulasFODS);
    CPPUNIT_TEST(testDubiousArrayFormulasFODS);
    CPPUNIT_TEST_SUITE_END();

};

void ArrayFunctionsTest::testArrayFormulasFODS()
{
    OUString aDirectoryURL = m_directories.getURLFromSrc(u"/sc/qa/unit/data/functions/array/fods/");
    recursiveScan(test::pass, "OpenDocument Spreadsheet Flat XML", aDirectoryURL,
            "com.sun.star.comp.filter.OdfFlatXml,,com.sun.star.comp.Calc.XMLOasisImporter,com.sun.star.comp.Calc.XMLOasisExporter,,,true",
            FODS_FORMAT_TYPE, SotClipboardFormatId::NONE, 0, false);
}

void ArrayFunctionsTest::testDubiousArrayFormulasFODS()
{
    //TODO: sc/qa/unit/data/functions/array/dubious/fods/linest.fods produces widely different
    // values when built with -ffp-contract enabled (-ffp-contract=on default on Clang 14,
    // -ffp-contract=fast default when building with optimizations on GCC) on at least aarch64:
#if !((defined __clang__ || defined __GNUC__) && defined __aarch64__)
    OUString aDirectoryURL
        = m_directories.getURLFromSrc(u"/sc/qa/unit/data/functions/array/dubious/fods/");
    recursiveScan(test::pass, "OpenDocument Spreadsheet Flat XML", aDirectoryURL,
            "com.sun.star.comp.filter.OdfFlatXml,,com.sun.star.comp.Calc.XMLOasisImporter,com.sun.star.comp.Calc.XMLOasisExporter,,,true",
            FODS_FORMAT_TYPE, SotClipboardFormatId::NONE, 0, false);
#endif
}

ArrayFunctionsTest::ArrayFunctionsTest():
    FunctionsTest("sc/qa/unit/data/functions/array/fods/")
{
}

CPPUNIT_TEST_SUITE_REGISTRATION(ArrayFunctionsTest);

CPPUNIT_PLUGIN_IMPLEMENT();

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */