//A method for find the smallest integer from the array, assuming
//that the array is not empty
public class SmallestIntegerFinder {
public static int findSmallestInt(int[] arrayOfIntegers) {
int smallest=0;
for(int i=0;i<arrayOfIntegers.length;i++){
if(smallest>arrayOfIntegers[i]) {
smallest=arrayOfIntegers[i];
}
}
return smallest;
}
}
//Junit test
import org.junit.Test;
import static org.junit.Assert.assertEquals;
public class SmallestIntegerFinderTest {
@Test
public void example1(){
int expected = 11;
int actual = SmallestIntegerFinder.findSmallestInt(new int[]{78,56,232,12,11,43});
assertEquals(expected, actual);
}
}
我有这个恼人的错误。预期:其中11是烷基;但是:&lt; 0&gt; java.lang.AssertionError:expected:&lt; 11&gt;但是:&lt; 0&gt;我能做什么?我该如何解决这个错误?当我不使用JUnit时,代码运行良好。一旦我包含JUnit测试,我就会收到错误。请指教
答案 0 :(得分:2)
问题在于,初始化>>> ts1.head(10)
temp rh snow wind gust \
2018-01-26 21:00:00 -10.120000 63.930000 207.100000 4.018000 9.806000
2018-01-26 22:00:00 -9.750000 58.540000 207.000000 3.856000 11.149000
2018-01-26 23:00:00 -9.710000 60.920000 206.900000 6.505000 13.759000
2018-01-27 00:00:00 -10.110000 57.450000 206.700000 6.602000 12.488000
2018-01-27 01:00:00 -10.041459 58.191892 206.854054 6.574757 12.575784
2018-01-27 02:00:00 -9.972919 58.933784 207.008108 6.547514 12.663568
2018-01-27 03:00:00 -9.904378 59.675676 207.162162 6.520270 12.751351
2018-01-27 04:00:00 -9.835838 60.417568 207.316216 6.493027 12.839135
2018-01-27 05:00:00 -9.767297 61.159459 207.470270 6.465784 12.926919
2018-01-27 06:00:00 -9.698757 61.901351 207.624324 6.438541 13.014703
wind_dir
2018-01-26 21:00:00 173.900000
2018-01-26 22:00:00 158.500000
2018-01-26 23:00:00 159.100000
2018-01-27 00:00:00 167.700000
2018-01-27 01:00:00 166.791892
2018-01-27 02:00:00 165.883784
2018-01-27 03:00:00 164.975676
2018-01-27 04:00:00 164.067568
2018-01-27 05:00:00 163.159459
2018-01-27 06:00:00 162.251351
时,将其设置为0,小于所有测试数据,因此结果为0。
解决这个问题的一种天真的方法是首先将smallest
设置为一个非常大的常量,但是如果最终使用更大的数据集,这仍然可能无效。 (从技术上讲,你可以将它设置为最大整数值,但这非常难看)
更好的解决方案是将smallest
的值初始化为数据集的第一个整数smallest
。通过这样做,arrayOfIntegers[0]
保证至少与数据集中的至少一个项目一样大。