簡體   English   中英

Java接口測試和編碼問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM