Spreadsheet: Fix for issue #2647, stddev does not work with arrays.

This commit is contained in:
Eivind Kvedalen 2016-11-12 08:28:21 +01:00 committed by wmayer
parent a3af2902ef
commit de27adbefa
2 changed files with 5 additions and 4 deletions

View File

@ -681,9 +681,6 @@ FunctionExpression::FunctionExpression(const DocumentObject *_owner, Function _f
throw ExpressionError("Invalid number of arguments: eaxctly two required.");
break;
case STDDEV:
if (args.size() < 2)
throw ExpressionError("Invalid number of arguments: at least two required.");
break;
case SUM:
case AVERAGE:
case COUNT:
@ -796,7 +793,7 @@ public:
virtual Quantity getQuantity() const {
if (n < 2)
return Quantity();
throw ExpressionError("Invalid number of entries: at least two required.");
else
return (M2 / (n - 1.0)).pow(Quantity(0.5));
}

View File

@ -42,6 +42,8 @@ class SpreadsheetCases(unittest.TestCase):
sheet.set('A8', '=count(1;2;3)')
sheet.set('A9', '=min(1;2;3)')
sheet.set('A10', '=max(1;2;3)')
sheet.set('A11', '=stddev(B3)')
sheet.set('A12', '=stddev(B3:B5)')
self.doc.recompute()
self.assertEqual(sheet.A1, 1)
self.assertEqual(sheet.A2, 3)
@ -53,6 +55,8 @@ class SpreadsheetCases(unittest.TestCase):
self.assertEqual(sheet.A8, 3)
self.assertEqual(sheet.A9, 1)
self.assertEqual(sheet.A10, 3)
self.assertEqual(sheet.A11, u'ERR: Invalid number of entries: at least two required.')
self.assertEqual(sheet.A12, 1)
def assertMostlyEqual(self, a, b):
if type(a) is Quantity: