[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/work/koffice-essen/kspread
From: Sebastian Sauer <mail () dipe ! org>
Date: 2010-12-03 21:01:48
Message-ID: 20101203210149.04529AC8A4 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1203398 by sebsauer:
apply patch from Juan Aquino to fix the IF function.
Patch for bug 240235, IF function shows wrong result, missing some comparisons \
between empty and others values.
- Added comparison:
empty vs integer
empty vs float
empty vs boolean, like openoffice and excel.
see http://svn.reviewboard.kde.org/r/5976/
BUG:240235
M +15 -0 Value.cpp
M +5 -0 tests/TestLogicFunctions.cpp
--- branches/work/koffice-essen/kspread/Value.cpp #1203397:1203398
@@ -702,6 +702,9 @@
if ((t1 == Empty) && (t2 == Empty)) return true;
if ((t1 == Empty) && (t2 == String)) return true;
+ if ((t1 == Empty) && (t2 == Integer)) return true;
+ if ((t1 == Empty) && (t2 == Float)) return true;
+ if ((t1 == Empty) && (t2 == Boolean)) return true;
if ((t1 == Boolean) && (t2 == Boolean)) return true;
if ((t1 == Boolean) && (t2 == Integer)) return true;
@@ -761,6 +764,18 @@
if ((t1 == Empty) && (t2 == String))
return(v.asString().isEmpty()) ? 0 : -1;
+ // empty vs integer
+ if ((t1 == Empty) && (t2 == Integer))
+ return -1;
+
+ // empty vs float
+ if ((t1 == Empty) && (t2 == Float))
+ return -1;
+
+ // empty vs boolean
+ if ((t1 == Empty) && (t2 == Boolean))
+ return -1;
+
// boolean vs boolean
if ((t1 == Boolean) && (t2 == Boolean)) {
bool p = asBoolean();
--- branches/work/koffice-essen/kspread/tests/TestLogicFunctions.cpp #1203397:1203398
@@ -125,6 +125,11 @@
CHECK_EVAL("IF(FALSE();7;A1)", Value(Value::Empty));
CHECK_EVAL("IF(TRUE();4;1/0)", Value(4));
CHECK_EVAL("IF(FALSE();1/0;5)", Value(5));
+ // Empty vs *
+ CHECK_EVAL("IF(A1==2;2;4)", Value(4));
+ CHECK_EVAL("IF(A1==2.5;2;4)", Value(4));
+ CHECK_EVAL("IF(A1==TRUE();2;4)", Value(4));
+ CHECK_EVAL("IF(A1==\"BAD\";2;4)", Value(4));
}
void TestLogicFunctions::testNOT()
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic