バブルソートの実装をしてみる

テストコードの雰囲気をつかむためにも、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でしょう。
以上適当バブルソート実装でした。