首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java接口测试和编码问题

Java接口测试和编码问题
EN

Stack Overflow用户
提问于 2014-10-16 13:18:02
回答 1查看 111关注 0票数 0

在过去的几个小时里,我一直在做这个任务,我被困在了分配所需的最后一个方法直方图上,我在测试和代码方面有问题(我正在使用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个值,第二个段中有一个值,第三个段中有一个值,第四个段中有两个值。因此,返回的值是一个长度为4的数组,按该顺序包含值(3、1、0、2)。注意,返回数组中的元素之和等于数据数组中的元素数。

以下是代码:

代码语言:javascript
复制
  @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;        
  }

下面是对上述方法的测试:

代码语言:javascript
复制
   @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提交我的工作,当我提交作业时,它告诉我该方法缺少一些测试,再加上“直方图没有计算正确的元素数”,我的问题是编码本身是否会出现问题,还是我遗漏了什么,与测试一样。

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-16 13:46:25

您只使用示例中的值测试您的方法。问题是,您编写方法时可能考虑到了这个特定的例子。如果你试着做一个不同长度的直方图,会发生什么?

您应该用不同的数据和参数编写更多的测试,并检查它们是否都通过了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26405495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档