Hi, perkenalkan tag baru dengan nama `snippet` yang kedepannya akan banyak menghiasi POST di blog ini yang berguna sebagai catatan saya khusus nya. Umumnya untuk kalian yang kebetulan search di google dan keluar link yang mengarah ke Artikel ini.

snippets
Photo by Evelyn Clement / Unsplash


Artikel dengan tag snippet ini akan berisi penggalan code atau bahkan satu file berbentuk script. Kita ambil contoh script untuk mencari bilangan palindrome terdekat, dari angka yang kita input atau set sebelumnya beserta unittest nya.

Langsung saja ini snippetnya:

#!/usr/bin/env python3
import unittest
from typing import Tuple


def is_palindrome(num):
    if num:
        return num == int(str(num)[::-1])
    return False

def find_nearest_palindrome(num: int) -> tuple:
    initial_value = num
    if not type(num) == int:
        return False, f"{initial_value} must type of integer", initial_value
    
    finding = True
    total = 0
    while finding:
        if is_palindrome(num):
            return True, num, total
        else:
            num -= 1
            total +=1


class TestPalindrome(unittest.TestCase):

    def test_value_is_palindrome(self):
        given_value = 212

        self.assertEqual(is_palindrome(given_value), True)

    def test_value_is_not_palindrome(self):
        given_value = 12

        self.assertFalse(is_palindrome(given_value))


class TestNearestPalindrome(unittest.TestCase):

    def test_get_nearest_palindrome(self):
        number = 430
        target = 424

        result, found, step = find_nearest_palindrome(number)

        self.assertEqual(target, found)
        self.assertTrue(result)
        self.assertEqual(number-target, step)


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


cara menjalankannya, cukup copy snippet diatas lalu simpan dengan pola test_<TERSERAH>.py. misalnya kita kasih nama test_palindrome.py. lalu jalankan di terminal:

python3 -m unittest -v test_palindrome.py

kalo berhasil, kurang lebih hasilnya akan seperti dibawah ini:

test_get_nearest_palindrome (test.TestNearestPalindrome) ... ok
test_value_is_not_palindrome (test.TestPalindrome) ... ok
test_value_is_palindrome (test.TestPalindrome) ... ok

----------------------------------------------------------------------
Ran 3 tests in 0.001s

OK

karena ini hanya snippet saja. Untuk penjelasan mengenai isinya apaan sih di dalemnya? kita sambung di artikel selanjutnya. Terima kasih.

Photo by Nathan Dumlao / Unsplash