Générer un test unitaire de tri rapide

Générez des tests unitaires pour une fonction Python donnée.

Vous pouvez interroger un modèle directement et tester les résultats renvoyés lors de l'utilisation de différentes valeurs de paramètre en utilisant la console Cloud ou en appelant directement l'API Vertex AI.

Requête forme libre

Créez des tests unitaires pour la fonction quick_sort suivante.

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)

Réponse

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()

Explication des tests :

  1. test_empty_array: vérifie si la fonction gère correctement un tableau vide.
  2. test_single_element_array: vérifie si la fonction gère correctement un tableau avec un seul élément.
  3. test_sorted_array : vérifie si la fonction trie correctement un tableau déjà trié.
  4. test_reverse_sorted_array : vérifie si la fonction trie correctement un tableau trié à l'envers.
  5. test_unsorted_array: vérifie si la fonction trie correctement un tableau non trié.
  6. test_array_with_duplicates: vérifie si la fonction gère correctement un tableau avec des éléments en double.

Exécuter les tests :

Pour exécuter les tests, enregistrez le code en tant que fichier Python (par exemple, test_quick_sort.py) et exécutez-le à partir de la ligne de commande:

python test_quick_sort.py

Cette opération exécute les tests et imprime les résultats. Si tous les tests réussissent, vous devriez obtenir un résultat semblable à celui-ci :

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

OK
Modèle : gemini-1.5-flash-001
Température : 1
Nombre maximal de jetons de sortie : 8 192
TopK : 40
TopP : 0,95