gpt4 book ai didi

java - 常规/katalon : Validate sequence of list

转载 作者:行者123 更新时间:2023-12-04 17:07:25 27 4
gpt4 key购买 nike

我有两个列表:

def listA = ['2', '3', '4.5', '5', '6.5', '7', '7.5', '8']
def listB = ['10', '11', '13', '1', '2', '2.5']

我想验证两个列表的顺序。对于 listA,每个当前元素都小于下一个元素,因此我有以下循环。

double previous = 0.0
for (int i = 0; i < listA.size(); i++) {
double current = Double.parseDouble(listA.get(i))
if (previous >= current) {
KeywordUtil.markFailed("previous=${previous}, current=${current} not in order")
}
previous = current
}

以上代码适用于 listA。

但我对如何验证第二个列表感到困惑。要求是从 10 - 13.5 元素应该按顺序排列,但在 13.5 之后,应该有 '1'。

listB 是动态的。有时是 ['11.5', '2', '3'] ,有时是 ['12', '2'] 或任何其他组合。无论列表是什么,它都应该遵循 10-13.5 然后 1-3

的顺序

更新我会尝试更好地解释这个要求。所以基本上我是在测试图片中显示的产品的尺寸顺序。

Requirement

所以我在测试不同的站点,测试不同的产品。每个产品都有不同的尺寸可用性。大多数产品的尺寸都是按数字顺序排列的,比如当前尺寸会比下一个尺寸小。对于他们来说,上面的 for 循环是可行的。

但对于某些类别,如“ child ”,要求尺寸应按顺序 --> 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 1, 1.5, 2 , 2.5, 3。现在这些产品中的一些可能缺少某些尺寸,但无论有什么尺寸,它们都应该遵循上述顺序。例如,如果有 12 和 2 尺寸可用,那么它应该按那个顺序,而不是 2 和 12。同样,如果有 13、1 和 3 尺寸可用,它应该按那个顺序,而不是 1、3、13

最佳答案

不确定我是否正确理解了您的要求(尤其是关于 listB 的要求),但我会像这样使用排序来执行这两项检查:

  1. 这里我使用toSorted()它根据 Comparator 创建一个新列表表示为闭包 {} .比较器比较转换为 double 的值。排序后的列表与原始列表进行比较,如果发生重新排序 -> 列表不符合规则:
boolean checkA( list ){
list == list.toSorted{ it.toDouble() }
}

assert checkA( [ '2', '3', '4.5', '5', '6.5', '7', '7.5', '8' ] )
assert !checkA( [ '2', 1, '3', '4.5', '5', '6.5', '7', '7.5', '8' ] )
  1. 这里我使用相同的方法,但比较器基于 WEIGHTS 中每个元素的索引工作。列表,然后按 WEIGHTS 对原始列表进行排序.
def WEIGHTS = [ 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 1, 1.5, 2, 2.5, 3 ]*.toDouble().asImmutable()

def checkB = { list ->
list == list.toSorted{ WEIGHTS.indexOf it.toDouble() }
}

assert checkB( ['10', '11', '13', '1', '2', '2.5'] )
assert checkB( ['11.5', '2', '3'] )
assert checkB( ['12', '2'] )
assert !checkB( ['11', '10', '1', '13', '2', '2.5'] )
assert !checkB( ['1', '12', '3'] )

关于java - 常规/katalon : Validate sequence of list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70300272/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com