问题描述
以下方法检查具有给定值/总和的所有三元组。我想为此方法编写一个@Test 方法,该方法返回一个整数并接受一个数组列表和一个变量作为参数。有没有办法可以为以下代码编写junit5测试-
int triplets(ArrayList<Integer> a,int sum)
{
int l,r;
int count = 0;
for (int i = 0; i < a.size() - 2; i++) {
l = i + 1;
r = a.size() - 1;
while (l < r) {
if ( a.get(i) + a.get(l) + a.get(r) == sum) {
count++;
System.out.print("Triplet " + count +" is " + a.get(i) + "," + a.get(l) + "," + a.get(r) + "\n");
L++;
r--;
}
else if (a.get(i) + a.get(l) + a.get(r) < sum)
L++;
else // arr.get(i) + arr.get(l) + arr.get(r) > sum
r--;
}
}
if(count!=0)
{
System.out.print("Total triplets present: " + count);
return 1;
}
else
return -1;
}
解决方法
在 JUnit5 中,您可以为此使用带有 MethodSource 的 ParameterizedTest。
[(7,7,57,192),(7,52,192)]