diff options
author | Eike Rathke <erack@redhat.com> | 2017-05-20 23:06:38 +0200 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2017-05-22 11:00:56 +0200 |
commit | 667e0625090f084b8d9ae5a885b6b4624766ed6c (patch) | |
tree | 9c87263f143b2fdb964979d13becbccf7a5483fb | |
parent | c41b82203ef54a74bd0693e29f65617d0e158a06 (diff) |
Unit test for SUBTOTAL MIN,MAX with array of references, tdf#58874
Change-Id: I116b236066f28e3442f644544e789e1dbc2ff88a
-rw-r--r-- | sc/qa/unit/ucalc_formula.cxx | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/sc/qa/unit/ucalc_formula.cxx b/sc/qa/unit/ucalc_formula.cxx index c2b46cec85ae..92f93722c531 100644 --- a/sc/qa/unit/ucalc_formula.cxx +++ b/sc/qa/unit/ucalc_formula.cxx @@ -7922,11 +7922,29 @@ void Test::testFuncRefListArraySUBTOTAL() aMark.SelectOneTable(0); m_pDoc->InsertMatrixFormula(1, 6, 1, 8, aMark, "=SUBTOTAL(9;OFFSET(A1;ROW(1:3);0;2))"); ScAddress aPos(1,6,0); - CPPUNIT_ASSERT_EQUAL_MESSAGE("SUBTOTAL for A2:A3 failed", 6.0, m_pDoc->GetValue(aPos)); + CPPUNIT_ASSERT_EQUAL_MESSAGE("SUBTOTAL SUM for A2:A3 failed", 6.0, m_pDoc->GetValue(aPos)); aPos.IncRow(); - CPPUNIT_ASSERT_EQUAL_MESSAGE("SUBTOTAL for A3:A4 failed", 12.0, m_pDoc->GetValue(aPos)); + CPPUNIT_ASSERT_EQUAL_MESSAGE("SUBTOTAL SUM for A3:A4 failed", 12.0, m_pDoc->GetValue(aPos)); aPos.IncRow(); - CPPUNIT_ASSERT_EQUAL_MESSAGE("SUBTOTAL for A4:A5 failed", 24.0, m_pDoc->GetValue(aPos)); + CPPUNIT_ASSERT_EQUAL_MESSAGE("SUBTOTAL SUM for A4:A5 failed", 24.0, m_pDoc->GetValue(aPos)); + + // Matrix in C7:C9, individual MIN of A2:A3, A3:A4 and A4:A5 + m_pDoc->InsertMatrixFormula(2, 6, 2, 8, aMark, "=SUBTOTAL(5;OFFSET(A1;ROW(1:3);0;2))"); + aPos.Set(2,6,0); + CPPUNIT_ASSERT_EQUAL_MESSAGE("SUBTOTAL MIN for A2:A3 failed", 2.0, m_pDoc->GetValue(aPos)); + aPos.IncRow(); + CPPUNIT_ASSERT_EQUAL_MESSAGE("SUBTOTAL MIN for A3:A4 failed", 4.0, m_pDoc->GetValue(aPos)); + aPos.IncRow(); + CPPUNIT_ASSERT_EQUAL_MESSAGE("SUBTOTAL MIN for A4:A5 failed", 8.0, m_pDoc->GetValue(aPos)); + + // Matrix in D7:D9, individual MAX of A2:A3, A3:A4 and A4:A5 + m_pDoc->InsertMatrixFormula(3, 6, 3, 8, aMark, "=SUBTOTAL(4;OFFSET(A1;ROW(1:3);0;2))"); + aPos.Set(3,6,0); + CPPUNIT_ASSERT_EQUAL_MESSAGE("SUBTOTAL MAX for A2:A3 failed", 4.0, m_pDoc->GetValue(aPos)); + aPos.IncRow(); + CPPUNIT_ASSERT_EQUAL_MESSAGE("SUBTOTAL MAX for A3:A4 failed", 8.0, m_pDoc->GetValue(aPos)); + aPos.IncRow(); + CPPUNIT_ASSERT_EQUAL_MESSAGE("SUBTOTAL MAX for A4:A5 failed", 16.0, m_pDoc->GetValue(aPos)); m_pDoc->DeleteTab(0); } |