Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

289
Visualizações
groovy/katalon: Validar la secuencia de la lista

Tengo dos listas:

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

Quiero validar la secuencia de ambas listas. Para listA, cada elemento actual es más pequeño que el siguiente, así que tengo el siguiente ciclo para eso.

 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 }

El código anterior funciona correctamente para listA.

Pero estoy atascado en cómo validar la segunda lista. El requisito es que del 10 al 13.5 los elementos deben estar en secuencia, pero después del 13.5, '1' debe estar ahí.

La lista B es dinámica. A veces sería ['11.5', '2', '3'] y otras veces ['12', '2'] o cualquier otra combinación. Cualquiera que sea la lista, siempre debe seguir la secuencia de 10-13.5 and then 1-3

Actualización , trataría de explicar el requisito un poco mejor. Básicamente, estoy probando la secuencia de tamaños de un producto que se muestra en la imagen.

Requisito

Así que estoy probando diferentes sitios y se prueban diferentes productos. Cada producto tendría diferente disponibilidad de tamaño. La mayoría de los productos tendrían los tamaños en secuencia numérica, como el tamaño actual sería más pequeño que el siguiente. Para ellos, el bucle for anterior funcionaría.

Pero para ciertas categorías como 'Niños pequeños', el requisito es que los tamaños deben estar en el orden --> 10, 10.5, 11, 11.5, 12, 12.5, 13, 13.5, 1, 1.5, 2, 2.5, 3 . Es posible que a algunos de estos productos les falten ciertos tamaños, pero independientemente de los tamaños disponibles, deben seguir el orden anterior. Por ejemplo, si hay disponibles 12 y 2 tamaños, entonces debe estar en ese orden, no 2 y 12. De manera similar, si hay disponibles 13, 1 y 3 tamaños, debe estar en ese orden, y no 1, 3, 13

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

No estoy seguro de haber entendido sus requisitos (especialmente sobre listB ) correctamente, pero implementaría ambas comprobaciones mediante la clasificación de esta manera:

  1. Aquí uso toSorted() que crea una nueva lista basada en un Comparator que se expresa como Closure {} . El comparador compara los valores convertidos al doble. La lista ordenada se compara con la original, y si se reordenó -> la lista no cumple con las reglas:
 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. Aquí uso el mismo método, pero el comparador funciona según el índice de cada elemento dentro de la lista de WEIGHTS y, por lo tanto, ordena la lista original por 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'] )
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda