【发布时间】:2021-12-10 05:50:38
【问题描述】:
我有两个列表:
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 and then 1-3的顺序
更新 我会尝试更好地解释要求。所以基本上我正在测试图片中显示的产品的尺寸顺序。
所以我正在测试不同的网站和不同的产品。每种产品都有不同的尺寸可供选择。大多数产品的尺寸都会按数字顺序排列,例如当前尺寸会小于下一个尺寸。对他们来说,上面的 for 循环就可以了。
但对于某些类别,如“小孩子”,要求尺寸应按顺序排列 --> 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
【问题讨论】:
-
"要求从 10 到 13.5 的元素应该是按顺序排列的,但是在 13.5 之后,应该有 '1'。" - 是不是
1即使不在输入中也应该在输出中? -
@JeffScottBrown 我在问题中添加了更多细节
标签: java list selenium-webdriver groovy katalon-studio