1
/* This file is part of the KDE project
2
Copyright 2010 Marijn Kruisselbrink <m.kruisselbrink@student.tue.nl>
4
This library is free software; you can redistribute it and/or
5
modify it under the terms of the GNU Library General Public
6
License as published by the Free Software Foundation; either
7
version 2 of the License, or (at your option) any later version.
9
This library is distributed in the hope that it will be useful,
10
but WITHOUT ANY WARRANTY; without even the implied warranty of
11
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
Library General Public License for more details.
14
You should have received a copy of the GNU Library General Public License
15
along with this library; see the file COPYING.LIB. If not, write to
16
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17
Boston, MA 02110-1301, USA.
19
#include "TestSheet.h"
21
#include <part/Doc.h> // FIXME detach from part
25
#include <qtest_kde.h>
27
using namespace KSpread;
29
void SheetTest::init()
32
m_doc->map()->addNewSheet();
33
m_sheet = m_doc->map()->sheet(0);
36
void SheetTest::cleanup()
41
void SheetTest::testRemoveRows_data()
43
QTest::addColumn<QString>("formula");
44
QTest::addColumn<int>("rowToRemove");
45
QTest::addColumn<QString>("result");
47
QTest::newRow("exact row") << "=C4" << 4 << "=#Dependency!";
48
QTest::newRow("earlier row") << "=C4" << 3 << "=C3";
49
QTest::newRow("later row") << "=C4" << 5 << "=C4";
51
QTest::newRow("range before start") << "=SUM(C4:C7)" << 3 << "=SUM(C3:C6)";
52
QTest::newRow("range start row") << "=SUM(C4:C7)" << 4 << "=SUM(C4:C6)";
53
QTest::newRow("range middle row") << "=SUM(C4:C7)" << 5 << "=SUM(C4:C6)";
54
QTest::newRow("range end row") << "=SUM(C4:C7)" << 7 << "=SUM(C4:C6)";
55
QTest::newRow("range after end") << "=SUM(C4:C7)" << 8 << "=SUM(C4:C7)";
56
QTest::newRow("entire range") << "=SUM(C4:C4)" << 4 << "=#Dependency!";
58
QTest::newRow("2d range before start") << "=SUM(C4:E7)" << 3 << "=SUM(C3:E6)";
59
QTest::newRow("2d range start row") << "=SUM(C4:E7)" << 4 << "=SUM(C4:E6)";
60
QTest::newRow("2d range middle row") << "=SUM(C4:E7)" << 5 << "=SUM(C4:E6)";
61
QTest::newRow("2d range end row") << "=SUM(C4:E7)" << 7 << "=SUM(C4:E6)";
62
QTest::newRow("2d range after end") << "=SUM(C4:E7)" << 8 << "=SUM(C4:E7)";
65
void SheetTest::testRemoveRows()
67
QFETCH(QString, formula);
68
QFETCH(int, rowToRemove);
69
QFETCH(QString, result);
71
Cell cell(m_sheet, 1, 1);
72
cell.setUserInput(formula);
73
m_sheet->removeRows(rowToRemove, 1);
75
QCOMPARE(cell.userInput(), result);
78
void SheetTest::testRemoveColumns_data()
80
QTest::addColumn<QString>("formula");
81
QTest::addColumn<int>("columnToRemove");
82
QTest::addColumn<QString>("result");
84
QTest::newRow("exact col") << "=C4" << 3 << "=#Dependency!";
85
QTest::newRow("earlier col") << "=C4" << 2 << "=B4";
86
QTest::newRow("later col") << "=C4" << 4 << "=C4";
88
QTest::newRow("range before start") << "=SUM(C4:E4)" << 2 << "=SUM(B4:D4)";
89
QTest::newRow("range start row") << "=SUM(C4:E4)" << 3 << "=SUM(C4:D4)";
90
QTest::newRow("range middle row") << "=SUM(C4:E4)" << 4 << "=SUM(C4:D4)";
91
QTest::newRow("range end row") << "=SUM(C4:E4)" << 5 << "=SUM(C4:D4)";
92
QTest::newRow("range after end") << "=SUM(C4:E4)" << 6 << "=SUM(C4:E4)";
93
QTest::newRow("entire range") << "=SUM(C4:C4)" << 3 << "=#Dependency!";
95
QTest::newRow("2d range before start") << "=SUM(C4:E7)" << 2 << "=SUM(B4:D7)";
96
QTest::newRow("2d range start row") << "=SUM(C4:E7)" << 3 << "=SUM(C4:D7)";
97
QTest::newRow("2d range middle row") << "=SUM(C4:E7)" << 4 << "=SUM(C4:D7)";
98
QTest::newRow("2d range end row") << "=SUM(C4:E7)" << 5 << "=SUM(C4:D7)";
99
QTest::newRow("2d range after end") << "=SUM(C4:E7)" << 6 << "=SUM(C4:E7)";
102
void SheetTest::testRemoveColumns()
104
QFETCH(QString, formula);
105
QFETCH(int, columnToRemove);
106
QFETCH(QString, result);
108
Cell cell(m_sheet, 1, 1);
109
cell.setUserInput(formula);
110
m_sheet->removeColumns(columnToRemove, 1);
112
QCOMPARE(cell.userInput(), result);
115
QTEST_KDEMAIN(SheetTest, GUI)
117
#include "TestSheet.moc"