Skip to content
This repository was archived by the owner on Nov 14, 2022. It is now read-only.

Commit aceca06

Browse files
jorgegirorominator1983
authored andcommitted
CodeMaid organised and cleaned
(cherry picked from commit 9853ceb)
1 parent ed1a41c commit aceca06

File tree

2 files changed

+60
-60
lines changed

2 files changed

+60
-60
lines changed

ClosedXML/Excel/CalcEngine/Functions/Statistical.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,7 @@ private static object MaxA(List<Expression> p)
216216
{
217217
return GetTally(p, false).Max();
218218
}
219+
219220
private static object Median(List<Expression> p)
220221
{
221222
return GetTally(p, false).Median();

ClosedXML_Tests/Excel/CalcEngine/StatisticalTests.cs

Lines changed: 59 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,65 @@ public void Max()
260260
Assert.AreEqual(96, value);
261261
}
262262

263+
[Test]
264+
public void Median_CellRangeOfNonNumericValues_ThrowsApplicationException()
265+
{
266+
//Arrange
267+
var ws = workbook.Worksheets.First();
268+
269+
//Act - Assert
270+
Assert.Throws<ApplicationException>(() =>
271+
{
272+
ws.Evaluate("AVERAGE(D3:D45)");
273+
});
274+
}
275+
276+
[Test]
277+
public void Median_EvenCountOfCellRange_ReturnsAverageOfTwoElementsInMiddleOfSortedList()
278+
{
279+
//Arrange
280+
var ws = workbook.Worksheets.First();
281+
282+
//Act
283+
double value = ws.Evaluate("MEDIAN(I3:I10)").CastTo<double>();
284+
285+
//Assert
286+
Assert.AreEqual(244.225, value, tolerance);
287+
}
288+
289+
[Test]
290+
public void Median_EvenCountOfManualNumbers_ReturnsAverageOfTwoElementsInMiddleOfSortedList()
291+
{
292+
//Act
293+
double value = workbook.Evaluate("MEDIAN(-27.5,93.93,64.51,-70.56)").CastTo<double>();
294+
295+
//Assert
296+
Assert.AreEqual(18.505, value, tolerance);
297+
}
298+
299+
[Test]
300+
public void Median_OddCountOfCellRange_ReturnsElementInMiddleOfSortedList()
301+
{
302+
//Arrange
303+
var ws = workbook.Worksheets.First();
304+
305+
//Act
306+
double value = ws.Evaluate("MEDIAN(I3:I11)").CastTo<double>();
307+
308+
//Assert
309+
Assert.AreEqual(189.05, value, tolerance);
310+
}
311+
312+
[Test]
313+
public void Median_OddCountOfManualNumbers_ReturnsElementInMiddleOfSortedList()
314+
{
315+
//Act
316+
double value = workbook.Evaluate("MEDIAN(-27.5,93.93,64.51,-70.56,101.65)").CastTo<double>();
317+
318+
//Assert
319+
Assert.AreEqual(64.51, value, tolerance);
320+
}
321+
263322
[Test]
264323
public void Min()
265324
{
@@ -391,66 +450,6 @@ public void VarP()
391450
value = workbook.Evaluate(@"=VARP(Data!H:H)").CastTo<double>();
392451
Assert.AreEqual(2189.430863, value, tolerance);
393452
}
394-
395-
[Test]
396-
public void Median_OddCountOfManualNumbers_ReturnsElementInMiddleOfSortedList()
397-
{
398-
//Act
399-
double value = workbook.Evaluate("MEDIAN(-27.5,93.93,64.51,-70.56,101.65)").CastTo<double>();
400-
401-
//Assert
402-
Assert.AreEqual(64.51, value, tolerance);
403-
}
404-
405-
[Test]
406-
public void Median_OddCountOfCellRange_ReturnsElementInMiddleOfSortedList()
407-
{
408-
//Arrange
409-
var ws = workbook.Worksheets.First();
410-
411-
//Act
412-
double value = ws.Evaluate("MEDIAN(I3:I11)").CastTo<double>();
413-
414-
//Assert
415-
Assert.AreEqual(189.05, value, tolerance);
416-
}
417-
418-
[Test]
419-
public void Median_EvenCountOfManualNumbers_ReturnsAverageOfTwoElementsInMiddleOfSortedList()
420-
{
421-
//Act
422-
double value = workbook.Evaluate("MEDIAN(-27.5,93.93,64.51,-70.56)").CastTo<double>();
423-
424-
//Assert
425-
Assert.AreEqual(18.505, value, tolerance);
426-
}
427-
428-
[Test]
429-
public void Median_EvenCountOfCellRange_ReturnsAverageOfTwoElementsInMiddleOfSortedList()
430-
{
431-
//Arrange
432-
var ws = workbook.Worksheets.First();
433-
434-
//Act
435-
double value = ws.Evaluate("MEDIAN(I3:I10)").CastTo<double>();
436-
437-
//Assert
438-
Assert.AreEqual(244.225, value, tolerance);
439-
}
440-
441-
[Test]
442-
public void Median_CellRangeOfNonNumericValues_ThrowsApplicationException()
443-
{
444-
//Arrange
445-
var ws = workbook.Worksheets.First();
446-
447-
//Act - Assert
448-
Assert.Throws<ApplicationException>(() =>
449-
{
450-
ws.Evaluate("AVERAGE(D3:D45)");
451-
});
452-
}
453-
454453
private XLWorkbook SetupWorkbook()
455454
{
456455
var wb = new XLWorkbook();

0 commit comments

Comments
 (0)