From aea7c4ecb85ed9d92f5fe1bbd9142d9b3a6d1c76 Mon Sep 17 00:00:00 2001 From: Xisco Fauli Date: Fri, 4 Jul 2025 15:36:55 +0200 Subject: [PATCH] tdf#167134: implement test as sc_functions_test No need to reinvent the wheel Change-Id: Iefffe2df9163fb8703eb74563b4031517c6aebba Reviewed-on: https://gerrit.libreoffice.org/c/core/+/187399 Reviewed-by: Xisco Fauli Tested-by: Jenkins --- sc/CppunitTest_sc_inlinearray.mk | 63 ------ sc/Module_sc.mk | 1 - sc/qa/unit/InlineArray.cxx | 70 ------ .../functions/spreadsheet/fods/lookup.fods | 203 +++++++++++++++++- sc/qa/unit/data/ods/LOOKUP_inlineArray.ods | Bin 14687 -> 0 bytes .../data/ods/tdf167134_LOOKUP_inlineArray.ods | Bin 15782 -> 0 bytes 6 files changed, 202 insertions(+), 135 deletions(-) delete mode 100644 sc/CppunitTest_sc_inlinearray.mk delete mode 100644 sc/qa/unit/InlineArray.cxx delete mode 100644 sc/qa/unit/data/ods/LOOKUP_inlineArray.ods delete mode 100644 sc/qa/unit/data/ods/tdf167134_LOOKUP_inlineArray.ods diff --git a/sc/CppunitTest_sc_inlinearray.mk b/sc/CppunitTest_sc_inlinearray.mk deleted file mode 100644 index 97d3dd50dd3c..000000000000 --- a/sc/CppunitTest_sc_inlinearray.mk +++ /dev/null @@ -1,63 +0,0 @@ -# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- -#************************************************************************* -# -# This file is part of the LibreOffice project. -# -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. -# -#************************************************************************* - -$(eval $(call gb_CppunitTest_CppunitTest,sc_inlinearray)) - -$(eval $(call gb_CppunitTest_use_externals,sc_inlinearray, \ - boost_headers \ - mdds_headers \ - libxml2 \ -)) - -$(eval $(call gb_CppunitTest_use_common_precompiled_header,sc_inlinearray)) - -$(eval $(call gb_CppunitTest_add_exception_objects,sc_inlinearray, \ - sc/qa/unit/InlineArray \ -)) - -$(eval $(call gb_CppunitTest_use_libraries,sc_inlinearray, \ - cppu \ - cppuhelper \ - sal \ - sc \ - scqahelper \ - sfx \ - subsequenttest \ - svl \ - svx \ - svxcore \ - test \ - tl \ - unotest \ - utl \ - vcl \ -)) - -$(eval $(call gb_CppunitTest_set_include,sc_inlinearray,\ - -I$(SRCDIR)/sc/source/ui/inc \ - -I$(SRCDIR)/sc/inc \ - $$(INCLUDE) \ -)) - -$(eval $(call gb_CppunitTest_use_sdk_api,sc_inlinearray)) - -$(eval $(call gb_CppunitTest_use_ure,sc_inlinearray)) -$(eval $(call gb_CppunitTest_use_vcl,sc_inlinearray)) - -$(eval $(call gb_CppunitTest_use_rdb,sc_inlinearray,services)) - -$(eval $(call gb_CppunitTest_use_configuration,sc_inlinearray)) - -$(eval $(call gb_CppunitTest_add_arguments,sc_inlinearray, \ - -env:arg-env=$(gb_Helper_LIBRARY_PATH_VAR)"$$$${$(gb_Helper_LIBRARY_PATH_VAR)+=$$$$$(gb_Helper_LIBRARY_PATH_VAR)}" \ -)) - -# vim: set noet sw=4 ts=4: diff --git a/sc/Module_sc.mk b/sc/Module_sc.mk index b8e357f8dd71..3e1dc0d120e0 100644 --- a/sc/Module_sc.mk +++ b/sc/Module_sc.mk @@ -65,7 +65,6 @@ $(eval $(call gb_Module_add_check_targets,sc,\ CppunitTest_sc_cache_test \ CppunitTest_sc_parallelism \ CppunitTest_sc_shapetest \ - CppunitTest_sc_inlinearray \ )) endif diff --git a/sc/qa/unit/InlineArray.cxx b/sc/qa/unit/InlineArray.cxx deleted file mode 100644 index cd17895bacba..000000000000 --- a/sc/qa/unit/InlineArray.cxx +++ /dev/null @@ -1,70 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -#include "helper/qahelper.hxx" // contains class ScModelTestBase - -#include - -using namespace css; - -class ScInlineArray : public ScModelTestBase -{ -public: - ScInlineArray() - : ScModelTestBase(u"sc/qa/unit/data"_ustr) - { - } -}; - -/* These tests cover cases that use inline arrays. The actual visible separators depend on user - settings. The default of these settings depend on local. The markup in the ODF file uses the - semicolon as column separator and the pipe symbol as row separator. These separators are used - in below comments.*/ - -CPPUNIT_TEST_FIXTURE(ScInlineArray, testLOOKUP_special) -{ - // LOOKUP has some special rules. These are tested here. - - // Load a document with test cases and force recalculation. - createScDoc("ods/LOOKUP_inlineArray.ods"); - dispatchCommand(mxComponent, u".uno:CalculateHard"_ustr, {}); - ScDocument* pDoc = getScDoc(); - - // Test results. Explanations can be found in the test file. - CPPUNIT_ASSERT_EQUAL(u"Y"_ustr, pDoc->GetString(ScAddress(1, 1, 0))); - CPPUNIT_ASSERT_EQUAL(u"#N/A"_ustr, pDoc->GetString(ScAddress(1, 2, 0))); - CPPUNIT_ASSERT_EQUAL(u"Z"_ustr, pDoc->GetString(ScAddress(1, 5, 0))); - CPPUNIT_ASSERT_EQUAL(u"10"_ustr, pDoc->GetString(ScAddress(1, 6, 0))); - CPPUNIT_ASSERT_EQUAL(u"#N/A"_ustr, pDoc->GetString(ScAddress(1, 8, 0))); - CPPUNIT_ASSERT_EQUAL(u"200"_ustr, pDoc->GetString(ScAddress(1, 11, 0))); - CPPUNIT_ASSERT_EQUAL(u"200"_ustr, pDoc->GetString(ScAddress(1, 12, 0))); - CPPUNIT_ASSERT_EQUAL(u"6"_ustr, pDoc->GetString(ScAddress(1, 13, 0))); -} - -CPPUNIT_TEST_FIXTURE(ScInlineArray, testTdf67134) -{ - // Search and result array in LOOKUP need not have the same direction. - // This also applies to inline arrays. - // Before the fix the #N/A error was returned in case of different directions. - - // Load a document with test cases and force recalculation. - createScDoc("ods/tdf167134_LOOKUP_inlineArray.ods"); - dispatchCommand(mxComponent, u".uno:CalculateHard"_ustr, {}); - ScDocument* pDoc = getScDoc(); - - // A2: string "D" - // B2: formula =LOOKUP(A2;{"B";"C";"D"};{"X"|"Y"|"Z"}) - CPPUNIT_ASSERT_EQUAL(u"Z"_ustr, pDoc->GetString(ScAddress(1, 1, 0))); - // B3: formula =LOOkUP(A2;{"B"|"C"|"D"};{"X";"Y";"Z"}) - CPPUNIT_ASSERT_EQUAL(u"Z"_ustr, pDoc->GetString(ScAddress(1, 2, 0))); -} - -CPPUNIT_PLUGIN_IMPLEMENT(); - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/qa/unit/data/functions/spreadsheet/fods/lookup.fods b/sc/qa/unit/data/functions/spreadsheet/fods/lookup.fods index 0e41537c7394..6e7ed5692e4f 100644 --- a/sc/qa/unit/data/functions/spreadsheet/fods/lookup.fods +++ b/sc/qa/unit/data/functions/spreadsheet/fods/lookup.fods @@ -19110,6 +19110,207 @@ + + + Z + + + Z + + + TRUE + + + =LOOKUP(K721; {"B"."C"."D"}; {"X";"Y";"Z"}) + + + Search and result array need not have the same direction. + + + + D + + + + + + + + Z + + + Z + + + TRUE + + + =LOOKUP(K721; {"B";"C";"D"}; {"X"."Y"."Z"}) + + + + + + Y + + + Y + + + TRUE + + + =LOOKUP(K723; {"B"."C"}; {"X"."Y"."Z"}) + + Search and result vector need not have the same size. If the index of the value found in the search vector is larger than the size of the result vector, the result vector is not extended. Instead the #N/A error is returned. That is different from the rule for cell ranges as parameter.Different directions for search and result vector are allowed. Those cases are handled in file tdf167134_LOOKUP_inlineArray.ods + + + + C + + + + + + #N/A + + + #N/A + + + TRUE + + + =LOOKUP(K724; {"B"."C"."D"}; {"X"."Y"}) + + + + D + + + + + + Z + + + Z + + + TRUE + + + =LOOKUP(K725; {1.3."B"."C"."D"};{10.20."X"."Y"."Z"}) + + + Generally, LOOKUP uses the index of the largest value from the search vector that is less or equal to the query value. Numbers must be sorted before strings in the search vector. + + + + E + + + + + + 10 + + + 10 + + + TRUE + + + =LOOKUP(K726; {1.3."B"."C"."D"};{10.20."X"."Y"."Z"}) + + + + 2 + + + + + + #N/A + + + #N/A + + + TRUE + + + =LOOKUP(K727; {1.2."B"."C"."D"};{10.20."X"."Y"."Z"}) + + + Only if the query value is a string and the found value in the search vector would be a number following the above rule, then a #N/A error is returned. + + + + A + + + + + + 200 + + + 200 + + + TRUE + + + =LOOKUP(K728;{1.2.3.4;10.20.30.40;100.200.300.400}) + + When the LOOKUP function is used with two parameters, then a horizontal search direction is used if the count of rows is less than the count of columns. Otherwise the search direction is vertical. The first column/row is used as search vector, the last column/row is used as result vector.In the third example, the value 4 in the first column is the largest value in the search vector that is smaller or equal to the query value 5. Thus the index 2 is used for the result vector. The value 6 in the last column is the value at index 2 in the result vector. + + + + 2 + + + + + + 200 + + + 200 + + + TRUE + + + =LOOKUP(K729;{1.10.100;2.20.200;3.30.300;4.40.400}) + + + + 2 + + + + + + 6 + + + 6 + + + TRUE + + + =LOOKUP(K730;{1.2.3;4.5.6;7.8.9}) + + + + 5 + + + @@ -19350,4 +19551,4 @@ - \ No newline at end of file + diff --git a/sc/qa/unit/data/ods/LOOKUP_inlineArray.ods b/sc/qa/unit/data/ods/LOOKUP_inlineArray.ods deleted file mode 100644 index ebd1e0d3dec163d6519f1c74af8960c9d9e22dc7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14687 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 o%RcG93;z3n|CvpHQ!Dd-m|L4`Z~y=R diff --git a/sc/qa/unit/data/ods/tdf167134_LOOKUP_inlineArray.ods b/sc/qa/unit/data/ods/tdf167134_LOOKUP_inlineArray.ods deleted file mode 100644 index c575feae7207a00f5956540772740aa44bba0142..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15782 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 uH_