Unittest für Schnellsortierung generieren

Unittests für eine bestimmte Python-Funktion generieren.

Sie können ein Modell direkt abfragen und die zurückgegebenen Ergebnisse testen, wenn Sie verschiedene Parameterwerte mit der Cloud Console oder durch direkten Aufruf der Vertex AI API verwenden.

Freiform-Prompt

Erstellen Sie Unittests für die folgende Quick_sort-Funktion.

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)

Antwort

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

Erläuterung der Tests:

  1. test_empty_array: Prüft, ob die Funktion ein leeres Array korrekt verarbeitet.
  2. test_single_element_array: Prüft, ob die Funktion ein Array mit einem einzelnen Element korrekt verarbeitet.
  3. test_sorted_array: Prüft, ob die Funktion ein bereits sortiertes Array korrekt sortiert.
  4. test_reverse_sorted_array: Prüft, ob die Funktion ein umgekehrt sortiertes Array korrekt sortiert.
  5. test_unsorted_array: Überprüft, ob die Funktion ein unsortiertes Array korrekt sortiert.
  6. test_array_with_duplicates:Prüft, ob die Funktion ein Array mit doppelten Elementen korrekt verarbeitet.

Tests ausführen:

Speichern Sie zum Ausführen der Tests den Code als Python-Datei (z.B. test_quick_sort.py) und führen Sie sie über die Befehlszeile aus:

python test_quick_sort.py

Dadurch werden die Tests ausgeführt und die Ergebnisse ausgegeben. Wenn alle Tests erfolgreich sind, sollte die Ausgabe in etwa so aussehen:

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

OK
Modell: gemini-1.5-flash-001
Temperatur: 1
Max. Ausgabetokens: 8.192
TopK: 40
TopP: 0,95