我一直在做這個任務的過去幾個小時,我被困在最後一個方法直方圖所需的任務,我有測試和代碼可能存在問題(我正在使用NetBeans的)。Java接口測試和編碼問題
該方法應該這樣做> 直方圖:取正數n指示在其中 數據的跨度被分割的分割數,並返回長度n的整數的數組,其中 每個元素的數組包含落入此分區的元素的數量。例如,如果數據是(0.5,1.2,2.4,9.8,5.1,10.5),則其範圍是 10.0(從0.5到10.5)。直方圖(4)會將此範圍分成四個部分: 0.5-3.0,3.0-5.5,5.5-8.0和8.0-10.5。檢查數據,我們看到在第一個段中有3個值 ,第二個中有1個值,第三個中有0個值,第二個值是 。因此,返回的值是一個包含 值(3,1,0,2)的長度爲4的數組。 請注意,返回數組中元素的總數等於數據數組中元素的數目 。
這裏是代碼:
@Override
public int[] histogram(int divisions) {
int[] wide = new int[divisions];
double segment = span()/divisions;
for (int i = 0; i < data.length; i++) {
if (data[i] <= (smallestElement() + segment)) {
wide[0] = wide[0]+ 1;
} else if (data[i] <= (smallestElement() + (2 * segment))) {
wide[1] = wide[1]+ 1;
} else if (data[i] <= (smallestElement() + (3 * segment))) {
wide[2] = wide[2]+ 1;
} else if (data[i] <= (smallestElement() + (4 * segment))) {
wide[3] = wide[3]+ 1;
}
}
return wide;
}
,這裏是上述方法的測試:
@Test
public void testHistogram() {
double[] data = new double[3];
data = new double[]{0.5, 1.2, 2.4, 9.8, 5.1, 10.5};
int[] data2 = new int[4];
data2 = new int[]{3, 1, 0, 2};
DoubleArrayStatisticalOutcomes a = new DoubleArrayStatisticalOutcomes(data);
assertArrayEquals(data2, a.histogram(4));
}
我用WebCat提交我的工作,當我提交作業它告訴我這個方法還有一些測試失敗,再加上這個「直方圖沒有考慮到正確的元素數量」,我的問題是這個問題是否出現在編碼本身,還是我缺少一些東西,與測試相同。
在此先感謝。
我認爲在提交作品後解釋你收到的信息必須是作業的一部分。 「缺少一些測試」可能意味着你沒有[用測試覆蓋你所有的代碼](http://en.wikipedia.org/wiki/Code_coverage)。另一條消息應該是自我解釋的! – ericbn 2014-10-16 13:45:51