[Libreoffice-commits] core.git: 5 commits - sc/source

Tor Lillqvist tml at collabora.com
Mon Nov 24 03:40:28 PST 2014


 sc/source/ui/optdlg/calcoptionsdlg.cxx |   56 +++++++++++++++++++++++----------
 1 file changed, 40 insertions(+), 16 deletions(-)

New commits:
commit 634a69019189389cc8a7154c846454807fce96a3
Author: Tor Lillqvist <tml at collabora.com>
Date:   Mon Nov 24 13:14:54 2014 +0200

    Reduce the amount of data by an order of magnitude
    
    Change-Id: I4a1deb2c1a0cfe67faef6a0d2e3d355b475eb9f0

diff --git a/sc/source/ui/optdlg/calcoptionsdlg.cxx b/sc/source/ui/optdlg/calcoptionsdlg.cxx
index c800726..0b0d160 100644
--- a/sc/source/ui/optdlg/calcoptionsdlg.cxx
+++ b/sc/source/ui/optdlg/calcoptionsdlg.cxx
@@ -1038,7 +1038,7 @@ struct Op : Area
        const OUString& rOp,
        double nRangeLo, double nRangeHi,
        double nEpsilon) :
-        Area(rTitle, 1000),
+        Area(rTitle, 200),
         msOp(rOp),
         mnRangeLo(nRangeLo),
         mnRangeHi(nRangeHi),
@@ -1355,31 +1355,31 @@ IMPL_LINK( ScCalcOptionsDialog, TestClickHdl, PushButton*, )
                                     return (nArg == 0);
                                 }));
 
-    pTestDocument->addTest(Reduction("Sum", "SUM", 500, 0, -1000, 1000, 3e-10,
+    pTestDocument->addTest(Reduction("Sum", "SUM", 100, 0, -1000, 1000, 3e-10,
                                      [] (double nAccum, double nArg)
                                      {
                                          return (nAccum + nArg);
                                      }));
 
-    pTestDocument->addTest(Reduction("Average", "AVERAGE", 500, 0, -1000, 1000, 3e-10,
+    pTestDocument->addTest(Reduction("Average", "AVERAGE", 100, 0, -1000, 1000, 3e-10,
                                      [] (double nAccum, double nArg)
                                      {
-                                         return (nAccum + nArg / static_cast<double>(500));
+                                         return (nAccum + nArg/100.);
                                      }));
 
-    pTestDocument->addTest(Reduction("Product", "PRODUCT", 500, 1, 0.1, 2.5, 3e-10,
+    pTestDocument->addTest(Reduction("Product", "PRODUCT", 100, 1, 0.1, 2.5, 3e-10,
                                      [] (double nAccum, double nArg)
                                      {
                                          return (nAccum * nArg);
                                      }));
 
-    pTestDocument->addTest(Reduction("Min", "MIN", 500, DBL_MAX, -1000, 1000, 0,
+    pTestDocument->addTest(Reduction("Min", "MIN", 100, DBL_MAX, -1000, 1000, 0,
                                      [] (double nAccum, double nArg)
                                      {
                                          return std::min(nAccum, nArg);
                                      }));
 
-    pTestDocument->addTest(Reduction("Max", "MAX", 500, -DBL_MAX, -1000, 1000, 0,
+    pTestDocument->addTest(Reduction("Max", "MAX", 100, -DBL_MAX, -1000, 1000, 0,
                                      [] (double nAccum, double nArg)
                                      {
                                          return std::max(nAccum, nArg);
commit c6f1f948178ab29ea190117376cb9365d8f4fd7b
Author: Tor Lillqvist <tml at collabora.com>
Date:   Mon Nov 24 13:08:01 2014 +0200

    Add AVERAGE test
    
    Change-Id: I144858631f229685284622eb9975a168e61ff6c5

diff --git a/sc/source/ui/optdlg/calcoptionsdlg.cxx b/sc/source/ui/optdlg/calcoptionsdlg.cxx
index ebaf2ed..c800726 100644
--- a/sc/source/ui/optdlg/calcoptionsdlg.cxx
+++ b/sc/source/ui/optdlg/calcoptionsdlg.cxx
@@ -1361,6 +1361,12 @@ IMPL_LINK( ScCalcOptionsDialog, TestClickHdl, PushButton*, )
                                          return (nAccum + nArg);
                                      }));
 
+    pTestDocument->addTest(Reduction("Average", "AVERAGE", 500, 0, -1000, 1000, 3e-10,
+                                     [] (double nAccum, double nArg)
+                                     {
+                                         return (nAccum + nArg / static_cast<double>(500));
+                                     }));
+
     pTestDocument->addTest(Reduction("Product", "PRODUCT", 500, 1, 0.1, 2.5, 3e-10,
                                      [] (double nAccum, double nArg)
                                      {
commit 62a06cd0a9ab053d6560f7395a4b0f339c2fbe58
Author: Tor Lillqvist <tml at collabora.com>
Date:   Mon Nov 24 13:03:52 2014 +0200

    Add MIN and MAX tests
    
    Change-Id: Ia8d5fdeb1e03009035136edeab991442b7d91c4b

diff --git a/sc/source/ui/optdlg/calcoptionsdlg.cxx b/sc/source/ui/optdlg/calcoptionsdlg.cxx
index 1d7c6f1..ebaf2ed 100644
--- a/sc/source/ui/optdlg/calcoptionsdlg.cxx
+++ b/sc/source/ui/optdlg/calcoptionsdlg.cxx
@@ -1367,6 +1367,18 @@ IMPL_LINK( ScCalcOptionsDialog, TestClickHdl, PushButton*, )
                                          return (nAccum * nArg);
                                      }));
 
+    pTestDocument->addTest(Reduction("Min", "MIN", 500, DBL_MAX, -1000, 1000, 0,
+                                     [] (double nAccum, double nArg)
+                                     {
+                                         return std::min(nAccum, nArg);
+                                     }));
+
+    pTestDocument->addTest(Reduction("Max", "MAX", 500, -DBL_MAX, -1000, 1000, 0,
+                                     [] (double nAccum, double nArg)
+                                     {
+                                         return std::max(nAccum, nArg);
+                                     }));
+
     return 0;
 }
 
commit 9d842b485f6c1a0d50d3d9d80ef8a61060645a62
Author: Tor Lillqvist <tml at collabora.com>
Date:   Mon Nov 24 12:59:30 2014 +0200

    Fix fencepost errors
    
    Change-Id: I4d22d535368569631be9c016f74b7c19b9019955

diff --git a/sc/source/ui/optdlg/calcoptionsdlg.cxx b/sc/source/ui/optdlg/calcoptionsdlg.cxx
index 3a0af0e..1d7c6f1 100644
--- a/sc/source/ui/optdlg/calcoptionsdlg.cxx
+++ b/sc/source/ui/optdlg/calcoptionsdlg.cxx
@@ -1217,7 +1217,7 @@ struct Reduction : Op
     virtual void addHeader(ScDocument *pDoc, int nTab) const SAL_OVERRIDE
     {
         pDoc->SetString(ScAddress(0,0,nTab), "x");
-        pDoc->SetString(ScAddress(1,0,nTab), msOp + "(" + OUString::number(mnNum) + ")");
+        pDoc->SetString(ScAddress(1,0,nTab), msOp);
         pDoc->SetString(ScAddress(2,0,nTab), "expected");
     }
 
@@ -1231,33 +1231,39 @@ struct Reduction : Op
 
         pDoc->SetValue(ScAddress(0,1+nRow,nTab), nArg);
 
-        if (nRow >= mnNum)
+        if (nRow >= mnNum-1)
         {
-            pDoc->SetString(ScAddress(1,1+nRow,nTab),
+            pDoc->SetString(ScAddress(1,1+nRow-mnNum+1,nTab),
                             OUString("=") + msOp + "(" +
-                            ScRange(ScAddress(0,1+nRow-mnNum,nTab),
+                            ScRange(ScAddress(0,1+nRow-mnNum+1,nTab),
                                     ScAddress(0,1+nRow,nTab)).Format(SCA_VALID|SCA_TAB_3D|SCA_VALID_COL|SCA_VALID_ROW) +
                             ")");
 
             double nAccum(mnAccumInitial);
             for (int i = 0; i < mnNum; i++)
-                nAccum = mpFun(nAccum, pDoc->GetValue(ScAddress(0,1+nRow-mnNum+i,nTab)));
+                nAccum = mpFun(nAccum, pDoc->GetValue(ScAddress(0,1+nRow-mnNum+i+1,nTab)));
 
-            pDoc->SetValue(ScAddress(2,1+nRow,nTab), nAccum);
+            pDoc->SetValue(ScAddress(2,1+nRow-mnNum+1,nTab), nAccum);
 
-            pDoc->SetString(ScAddress(3,1+nRow,nTab),
-                            OUString("=IF(ABS(") + ScAddress(1,1+nRow,nTab).Format(SCA_VALID_COL|SCA_VALID_ROW) +
-                            "-" + ScAddress(2,1+nRow,nTab).Format(SCA_VALID_COL|SCA_VALID_ROW) +
-                            ")<=" + OUString::number(mnEpsilon) +
-                            ",0,1)");
+            if (mnEpsilon != 0)
+                pDoc->SetString(ScAddress(3,1+nRow-mnNum+1,nTab),
+                                OUString("=IF(ABS(") + ScAddress(1,1+nRow-mnNum+1,nTab).Format(SCA_VALID_COL|SCA_VALID_ROW) +
+                                "-" + ScAddress(2,1+nRow-mnNum+1,nTab).Format(SCA_VALID_COL|SCA_VALID_ROW) +
+                                ")<=" + OUString::number(mnEpsilon) +
+                                ",0,1)");
+            else
+                pDoc->SetString(ScAddress(3,1+nRow-mnNum+1,nTab),
+                                OUString("=IF(") + ScAddress(1,1+nRow-mnNum+1,nTab).Format(SCA_VALID_COL|SCA_VALID_ROW) +
+                                "=" + ScAddress(2,1+nRow-mnNum+1,nTab).Format(SCA_VALID_COL|SCA_VALID_ROW) +
+                                ",0,1)");
         }
     }
 
     virtual OUString getSummaryFormula(ScDocument *pDoc, int nTab) const SAL_OVERRIDE
     {
         return OUString("=SUM(") +
-            ScRange(ScAddress(3,1+mnNum,nTab),
-                    ScAddress(3,1+mnRows-1,nTab)).Format(SCA_VALID|SCA_TAB_3D|SCA_VALID_COL|SCA_VALID_ROW|SCA_VALID_TAB, pDoc) +
+            ScRange(ScAddress(3,1+0,nTab),
+                    ScAddress(3,1+mnRows-mnNum-1,nTab)).Format(SCA_VALID|SCA_TAB_3D|SCA_VALID_COL|SCA_VALID_ROW|SCA_VALID_TAB, pDoc) +
             ")";
     }
 };
commit c7d2794d5689e10283d0abbe0b6d422a85795410
Author: Tor Lillqvist <tml at collabora.com>
Date:   Mon Nov 24 12:21:52 2014 +0200

    The initial value for PRODUCT should obviously be one, not zero
    
    Change-Id: Id054d66e716fb5b176b687afc5d4121f3fa13765

diff --git a/sc/source/ui/optdlg/calcoptionsdlg.cxx b/sc/source/ui/optdlg/calcoptionsdlg.cxx
index ab52adb..3a0af0e 100644
--- a/sc/source/ui/optdlg/calcoptionsdlg.cxx
+++ b/sc/source/ui/optdlg/calcoptionsdlg.cxx
@@ -1355,7 +1355,7 @@ IMPL_LINK( ScCalcOptionsDialog, TestClickHdl, PushButton*, )
                                          return (nAccum + nArg);
                                      }));
 
-    pTestDocument->addTest(Reduction("Product", "PRODUCT", 500, 0, 0.1, 2.5, 3e-10,
+    pTestDocument->addTest(Reduction("Product", "PRODUCT", 500, 1, 0.1, 2.5, 3e-10,
                                      [] (double nAccum, double nArg)
                                      {
                                          return (nAccum * nArg);


More information about the Libreoffice-commits mailing list