[Libreoffice-commits] core.git: 2 commits - sc/qa

Łukasz Hryniuk lukasz.hryniuk at wp.pl
Fri Sep 25 06:49:04 PDT 2015


 sc/qa/unit/ucalc_formula.cxx |   71 ++++++++++++++++++++++++++++++++-----------
 1 file changed, 54 insertions(+), 17 deletions(-)

New commits:
commit b24286e46ebd0dbc2acbea30627572a66707f346
Author: Łukasz Hryniuk <lukasz.hryniuk at wp.pl>
Date:   Fri Sep 25 14:56:11 2015 +0200

    Testcases with several arrays for SUM and PRODUCT
    
    Change-Id: I0e710b6a53af3aa062a17e0a998691e1ec6d3973

diff --git a/sc/qa/unit/ucalc_formula.cxx b/sc/qa/unit/ucalc_formula.cxx
index 195343b..58d1e6b 100644
--- a/sc/qa/unit/ucalc_formula.cxx
+++ b/sc/qa/unit/ucalc_formula.cxx
@@ -3390,6 +3390,13 @@ void Test::testFuncPRODUCT()
     m_pDoc->SetString(aPos, OUString("=PRODUCT({8;0.125;-1})"));
     CPPUNIT_ASSERT_EQUAL_MESSAGE("Calculation of PRODUCT with inline array failed", -1.0, m_pDoc->GetValue(aPos));
 
+    m_pDoc->SetString(aPos, OUString("=PRODUCT({2;3};{4;5})"));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Calculation of PRODUCT with inline array failed", 120.0, m_pDoc->GetValue(aPos));
+    m_pDoc->SetString(aPos, OUString("=PRODUCT({10;-8};{3;-1};{15;30};{7})"));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Calculation of PRODUCT with inline array failed", 756000.0, m_pDoc->GetValue(aPos));
+    m_pDoc->SetString(aPos, OUString("=PRODUCT({10;-0.1;8};{0.125;4;0.25;2};{0.5};{1};{-1})"));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Calculation of PRODUCT with inline array failed", 1.0, m_pDoc->GetValue(aPos));
+
     m_pDoc->DeleteTab(0);
 }
 
@@ -6364,6 +6371,15 @@ void Test::testFuncSUMSQ()
     m_pDoc->SetString(aPos, "=SUMSQ({\"a\";-4;-5})");
     CPPUNIT_ASSERT_EQUAL_MESSAGE("Calculation of SUMSQ for failed", 41.0, m_pDoc->GetValue(aPos));
 
+    m_pDoc->SetString(aPos, "=SUMSQ({2;3};{4;5})");
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Calculation of SUMSQ for failed", 54.0, m_pDoc->GetValue(aPos));
+    m_pDoc->SetString(aPos, "=SUMSQ({-3;3;1};{-1})");
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Calculation of SUMSQ for failed", 20.0, m_pDoc->GetValue(aPos));
+    m_pDoc->SetString(aPos, "=SUMSQ({-4};{1;4;2};{-5;7};{9})");
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Calculation of SUMSQ for failed", 192.0, m_pDoc->GetValue(aPos));
+    m_pDoc->SetString(aPos, "=SUMSQ({-2;2};{1};{-1};{0;0;0;4})");
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Calculation of SUMSQ for failed", 26.0, m_pDoc->GetValue(aPos));
+
     m_pDoc->SetString(aPos, "=SUMSQ(4;1;-3)");
     CPPUNIT_ASSERT_EQUAL_MESSAGE("Calculation of SUMSQ for failed", 26.0, m_pDoc->GetValue(aPos));
     m_pDoc->SetString(aPos, "=SUMSQ(0;5;13;-7;-4)");
commit 2b0413a7d79f9df0b29bc2f27599b95eba1c7bdc
Author: Łukasz Hryniuk <lukasz.hryniuk at wp.pl>
Date:   Fri Sep 25 14:38:42 2015 +0200

    Broaden PRODUCT test
    
    Change-Id: I3abeb0c958031202da869084ffa24c11b8a47592

diff --git a/sc/qa/unit/ucalc_formula.cxx b/sc/qa/unit/ucalc_formula.cxx
index 49fdd5f..195343b 100644
--- a/sc/qa/unit/ucalc_formula.cxx
+++ b/sc/qa/unit/ucalc_formula.cxx
@@ -3351,23 +3351,44 @@ void Test::testFuncPRODUCT()
     sc::AutoCalcSwitch aACSwitch(*m_pDoc, true); // turn on auto recalc.
 
     OUString aTabName("foo");
-    CPPUNIT_ASSERT_MESSAGE ("failed to insert sheet",
-                            m_pDoc->InsertTab (0, aTabName));
-
-    double val = 1;
-    double result;
-    m_pDoc->SetValue(0, 0, 0, val);
-    val = 2;
-    m_pDoc->SetValue(0, 1, 0, val);
-    val = 3;
-    m_pDoc->SetValue(0, 2, 0, val);
-    m_pDoc->SetString(0, 3, 0, OUString("=PRODUCT(A1:A3)"));
-    m_pDoc->GetValue(0, 3, 0, result);
-    CPPUNIT_ASSERT_MESSAGE("Calculation of PRODUCT failed", result == 6.0);
-
-    m_pDoc->SetString(0, 4, 0, OUString("=PRODUCT({2;3;4})"));
-    m_pDoc->GetValue(0, 4, 0, result);
-    CPPUNIT_ASSERT_MESSAGE("Calculation of PRODUCT with inline array failed", result == 24.0);
+    CPPUNIT_ASSERT_MESSAGE ("failed to insert sheet", m_pDoc->InsertTab(0, aTabName));
+
+    ScAddress aPos(3, 0, 0);
+    m_pDoc->SetValue(0, 0, 0, 3.0); // A1
+    m_pDoc->SetString(aPos, OUString("=PRODUCT(A1)"));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Calculation of PRODUCT failed", 3.0, m_pDoc->GetValue(aPos));
+    m_pDoc->SetValue(0, 0, 0, -3.0); // A1
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Calculation of PRODUCT failed", -3.0, m_pDoc->GetValue(aPos));
+    m_pDoc->SetString(aPos, OUString("=PRODUCT(B1)"));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Calculation of PRODUCT failed", 0.0, m_pDoc->GetValue(aPos));
+    m_pDoc->SetValue(1, 0, 0, 10.0); // B1
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Calculation of PRODUCT failed", 10.0, m_pDoc->GetValue(aPos));
+
+    m_pDoc->SetString(aPos, OUString("=PRODUCT(A1:C3)"));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Calculation of PRODUCT failed", -30.0, m_pDoc->GetValue(aPos));
+    m_pDoc->SetValue(1, 1, 0, -1.0); // B2
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Calculation of PRODUCT failed", 30.0, m_pDoc->GetValue(aPos));
+    m_pDoc->SetValue(2, 0, 0, 4.0); // C1
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Calculation of PRODUCT failed", 120.0, m_pDoc->GetValue(aPos));
+    m_pDoc->SetValue(0, 1, 0, -2.0); // A2
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Calculation of PRODUCT failed", -240.0, m_pDoc->GetValue(aPos));
+    m_pDoc->SetValue(2, 1, 0, 8.0); // C2
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Calculation of PRODUCT failed", -1920.0, m_pDoc->GetValue(aPos));
+    m_pDoc->SetValue(0, 2, 0, 0.2); // A3
+    CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE("Calculation of PRODUCT failed", -384.0, m_pDoc->GetValue(aPos), 10e-4);
+    m_pDoc->SetValue(1, 2, 0, -0.25); // B3
+    CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE("Calculation of PRODUCT failed", 96.0, m_pDoc->GetValue(aPos), 10e-4);
+    m_pDoc->SetValue(2, 2, 0, -0.125); // C3
+    CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE("Calculation of PRODUCT failed", -12.0, m_pDoc->GetValue(aPos), 10e-4);
+    m_pDoc->SetValue(2, 2, 0, 0.0); // C3
+    CPPUNIT_ASSERT_DOUBLES_EQUAL_MESSAGE("Calculation of PRODUCT failed", 0.0, m_pDoc->GetValue(aPos), 10e-4);
+
+    m_pDoc->SetString(aPos, OUString("=PRODUCT({2;3;4})"));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Calculation of PRODUCT with inline array failed", 24.0, m_pDoc->GetValue(aPos));
+    m_pDoc->SetString(aPos, OUString("=PRODUCT({2;-2;2})"));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Calculation of PRODUCT with inline array failed", -8.0, m_pDoc->GetValue(aPos));
+    m_pDoc->SetString(aPos, OUString("=PRODUCT({8;0.125;-1})"));
+    CPPUNIT_ASSERT_EQUAL_MESSAGE("Calculation of PRODUCT with inline array failed", -1.0, m_pDoc->GetValue(aPos));
 
     m_pDoc->DeleteTab(0);
 }


More information about the Libreoffice-commits mailing list