Gerar teste de unidade de classificação rápida

Gere testes de unidade para uma determinada função do Python.

É possível consultar um modelo diretamente e testar os resultados retornados ao usar diferentes valores de parâmetros com o console do Cloud ou ao chamar a API Vertex AI diretamente.

Comando Formato livre

Crie testes de unidade para a seguinte função quick_sort.

def quick_sort(arr):
    if len(arr) <= 1:
        return arr
    else:
        pivot = arr[0]
        left = [x for x in arr[1:] if x < pivot]
        right = [x for x in arr[1:] if x >= pivot]
        return quick_sort(left) + [pivot] + quick_sort(right)

Resposta

import unittest

def quick_sort(arr):
if len(arr) <= 1:
return arr
else:
pivot = arr[0]
left = [x for x in arr[1:] if x < pivot]
right = [x for x in arr[1:] if x >= pivot]
return quick_sort(left) + [pivot] + quick_sort(right)

class TestQuickSort(unittest.TestCase):

def test_empty_array(self):
self.assertEqual(quick_sort([]), [])

def test_single_element_array(self):
self.assertEqual(quick_sort([5]), [5])

def test_sorted_array(self):
self.assertEqual(quick_sort([1, 2, 3, 4, 5]), [1, 2, 3, 4, 5])

def test_reverse_sorted_array(self):
self.assertEqual(quick_sort([5, 4, 3, 2, 1]), [1, 2, 3, 4, 5])

def test_unsorted_array(self):
self.assertEqual(quick_sort([3, 7, 8, 5, 2, 1, 9, 4, 6]), [1, 2, 3, 4, 5, 6, 7, 8, 9])

def test_array_with_duplicates(self):
self.assertEqual(quick_sort([3, 7, 8, 5, 2, 1, 9, 4, 6, 3, 7]), [1, 2, 3, 3, 4, 5, 6, 7, 7, 8, 9])

if __name__ == '__main__':
unittest.main()

Explicação sobre os testes:

  1. test_empty_array: verifica se a função processa corretamente uma matriz vazia.
  2. test_single_element_array: verifica se a função processa corretamente uma matriz com um único elemento.
  3. test_sorted_array: verifica se a função classifica corretamente uma matriz já classificada.
  4. test_reverse_sorted_array: verifica se a função classifica corretamente uma matriz com classificação reversa.
  5. test_unsorted_array: verifica se a função classifica corretamente uma matriz não classificada.
  6. test_array_with_duplicates: verifica se a função processa corretamente uma matriz com elementos duplicados.

Como executar os testes:

Para executar os testes, salve o código como um arquivo Python (por exemplo, test_quick_sort.py) e execute-o na linha de comando:

python test_quick_sort.py

Isso executará os testes e imprimirá os resultados. Se todos os testes forem aprovados, você verá uma resposta semelhante a:

....
----------------------------------------------------------------------
Ran 6 tests in 0.001s

OK
Modelo: gemini-1.5-flash-001
Temperatura: 1
Máximo de tokens de saída: 8192
TopK: 40
TopP: 0,95