バブルソートの実装をしてみる
テストコードの雰囲気をつかむためにも、Pythonでバブルソートを実装してみました。
以下がバブルソートのコードになります。
def bubble_sort(arr): for i in range(len(arr)): for j in range(len(arr)-1, i, -1): if arr[j] < arr[j-1]: arr[j], arr[j-1] = arr[j-1], arr[j] return arr
そして、以下のものがテスト用のコードになります。テストの書き方はまだ勉強始めたばかりなのでその質はご容赦を、、
import unittest from bubble_sort import bubble_sort l1 = [3, 6, 5, 10, 4, 8] l2 = [9, 8, 10, 5, 1, 4] l3 = [5, 9, 7, 1, 12, 3] class Test_bubble_sort(unittest.TestCase): def setUp(self): l1_out = bubble_sort(l1) l2_out = bubble_sort(l2) l3_out =bubble_sort(l3) list_out = [l1_out, l2_out, l3_out] l1_expect = [3, 4, 5, 6, 8, 10] l2_expect = [1, 4, 5, 8, 9, 10] l3_expect = [1, 3, 5, 7, 9, 12] list_expect = [l1_expect, l2_expect, l3_expect] for i in range(0, 3): self.assertEqual(list_out[i], list_expect[i]) if __name__ == '__main__': unittest.main()
実行した結果はこんな感じ。
Ran 0 tests in 0.000s OK プロセスは終了コード 0 で完了しました Empty suite
多分OKでしょう。
以上適当バブルソート実装でした。