@Test public void testFieldStats() { Field uniform = Data.makeColumnField("a", "label", new Object[] {100, 200, 300, 400, 500, 600}); Field uniformWithMissing = Data.makeColumnField("a", "label", new Object[] {100, 200, null, 300, "a", 400, 500, 600}); Field peak = Data.makeColumnField("b", "label", new Object[] {1, 2, 2, 2, 2, 2, 2, 3}); Field skew = Data.makeColumnField("c", "label", new Object[] {1, 1, 1, 1, 1, 2, 2, 2, 5, 10}); Field a = Data.makeColumnField("f", "label", new Object[] {0, 1, 1, 1, 1, 2, 2, 2, 5, 10, 100, 1000}); Field b = Data.makeColumnField("f", "label", new Object[] {10, 20, 30, 40, 22, 50, 60}); uniform = uniform.dropData(); uniformWithMissing = uniformWithMissing.dropData(); peak = peak.dropData(); skew = skew.dropData(); a = a.dropData(); b = b.dropData(); // Basics assertEquals(6, uniform.rowCount()); assertEquals(8, uniformWithMissing.rowCount()); assertEquals(350, uniform.numericProperty("median"), 0.01); assertEquals(350, uniformWithMissing.numericProperty("median"), 0.01); assertEquals(2, peak.numericProperty("median"), 0.01); assertEquals(1.5, skew.numericProperty("median"), 0.01); assertEquals(2, a.numericProperty("median"), 0.01); assertEquals(30, b.numericProperty("median"), 0.01); assertEquals(200, uniform.numericProperty("q1"), 0.01); assertEquals(200, uniformWithMissing.numericProperty("q1"), 0.01); assertEquals(2, peak.numericProperty("q1"), 0.01); assertEquals(1, skew.numericProperty("q1"), 0.01); assertEquals(1, a.numericProperty("q1"), 0.01); assertEquals(21, b.numericProperty("q1"), 0.01); assertEquals(500, uniform.numericProperty("q3"), 0.01); assertEquals(500, uniformWithMissing.numericProperty("q3"), 0.01); assertEquals(2, peak.numericProperty("q3"), 0.01); assertEquals(2, skew.numericProperty("q3"), 0.01); assertEquals(7.5, a.numericProperty("q3"), 0.01); assertEquals(45, b.numericProperty("q3"), 0.01); assertEquals(100, uniform.numericProperty("granularity"), 0.01); assertEquals(100, uniformWithMissing.numericProperty("granularity"), 0.01); assertEquals(1, peak.numericProperty("granularity"), 0.01); assertEquals(1, skew.numericProperty("granularity"), 0.01); assertEquals(1, a.numericProperty("granularity"), 0.01); assertEquals(2, b.numericProperty("granularity"), 0.01); }