[英]Java Interface Testing and Coding Issues
在過去的幾個小時中,我一直在從事這項工作,但我堅持工作所需要的最后一種方法直方圖,我在測試和代碼方面遇到了問題(我正在使用NetBeans)。
該方法應執行以下操作> 直方圖 :取一個正數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個值,第四個段中有2個值。 因此,返回的值是一個長度為4的數組,該數組按順序包含值(3、1、0、2)。 請注意,返回數組中元素的總和等於數據數組中元素的數量。
這是代碼:
@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提交我的工作,當我提交作業時,它告訴我該方法缺少一些測試,加上此“直方圖不能說明元素的正確數量”,我的問題是編碼中是否出現此問題?本身還是我缺少的東西,與測試相同。
提前致謝。
您僅使用示例中的值測試您的方法。 問題是您可能在編寫該方法時考慮了這個特定的示例。 如果您嘗試制作不同長度的直方圖,將會發生什么?
您應該編寫更多具有不同數據和參數的測試,並檢查它們均通過。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.