### Question:
KnoxShellTable { public double mean(String colName) { return StatUtils.mean(toDoubleArray(colName)); } KnoxShellTable(); KnoxShellTable title(String title); KnoxShellTable header(String header); KnoxShellTable row(); KnoxShellTable value(Comparable<? extends Object> value); KnoxShellTableCell<? extends Comparable<? extends Object>> cell(int colIndex, int rowIndex); List<Comparable<? extends Object>> values(int colIndex); List<Comparable<? extends Object>> values(String colName); double mean(String colName); double mean(int colIndex); double median(String colName); double median(int colIndex); double mode(String colName); double mode(int colIndex); double sum(String colName); double sum(int colIndex); double max(String colName); double max(int colIndex); double min(String colName); double min(int colIndex); KnoxShellTable apply(KnoxShellTableCell<? extends Comparable<? extends Object>> cell); List<String> getHeaders(); List<List<Comparable<? extends Object>>> getRows(); String getTitle(); long getId(); static KnoxShellTableBuilder builder(); List<KnoxShellTableCall> getCallHistoryList(); String getCallHistory(); String rollback(); KnoxShellTable replayAll(); KnoxShellTable replay(int step); static KnoxShellTable replay(long id, int step); KnoxShellTableFilter filter(); KnoxShellTableAggregator aggregate(); KnoxShellTable select(String cols); KnoxShellTable sort(String colName); KnoxShellTable sortNumeric(String colName); KnoxShellTable sort(String colName, SortOrder order); KnoxShellTable sort(List<Comparable<? extends Object>> col,
      SortOrder order); @Override String toString(); String toJSON(); String toJSON(boolean data); String toJSON(String path); String toJSON(boolean data, String path); String toCSV(); String toCSV(String filePath);  }### Answer:
@Test public void testMean() throws Exception { Byte byte10 = 10; Byte byte20 = 20; Byte byte30 = 30; Short short10 = 10; Short short20 = 20; Short short30 = 30; Long long10 = (long) 100000000; Long long20 = (long) 200000000; Long long30 = (long) 300000000; String string10 = "1023.98000000000"; String string20 = "2089743.6"; String string30 = "-3"; KnoxShellTable TABLE = new KnoxShellTable(); TABLE.header("Column Integer").header("Column Double").header("Column Float").header("Column Byte").header("Column Short").header("Column Long").header("Column String"); TABLE.row().value(10).value(20d).value(20.9999).value(byte10).value(short10).value(long10).value(string10); TABLE.row().value(30).value(40d).value(40.9999).value(byte20).value(short20).value(long20).value(string20); TABLE.row().value(27).value(60d).value(60.9999).value(byte30).value(short30).value(long30).value(string30); assertEquals(22.3, TABLE.mean("Column Integer"), 0.1); assertEquals(40, TABLE.mean("Column Double"), 0.1); assertEquals(22.3, TABLE.mean(0), 0.1); assertEquals(40, TABLE.mean(1), 0.1); assertEquals(40.9999, TABLE.mean("Column Float"), 0.1); assertEquals(40.9999, TABLE.mean(2), 0.1); assertEquals(20, TABLE.mean("Column Byte"), 0.1); assertEquals(20, TABLE.mean("Column Short"), 0.1); assertEquals(2.0E8, TABLE.mean("Column Long"), 0.1); assertEquals(696921.52666666, TABLE.mean("Column String"), 0.1); }