Last active
December 25, 2015 10:29
-
-
Save macobo/6962470 to your computer and use it in GitHub Desktop.
Different solutions to poker hand ranking, without using lists.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #juhendaja lahendus | |
| def mitu_tugevusega(alg, a, b = -1, c = -1): | |
| tul = 1 | |
| if a == alg: tul += 1 | |
| if b == alg: tul += 1 | |
| if c == alg: tul += 1 | |
| return tul | |
| def paar(k1, k2, k3, k4, k5): | |
| return mitu_tugevusega(k1, k2) == 2 or \ | |
| mitu_tugevusega(k2, k3) == 2 or \ | |
| mitu_tugevusega(k3, k4) == 2 or \ | |
| mitu_tugevusega(k4, k5) == 2 | |
| def kolmik(k1, k2, k3, k4, k5): | |
| return mitu_tugevusega(k1, k2, k3) == 3 or \ | |
| mitu_tugevusega(k2, k3, k4) == 3 or \ | |
| mitu_tugevusega(k3, k4, k5) == 3 | |
| def nelik(k1, k2, k3, k4, k5): | |
| return mitu_tugevusega(k1, k2, k3, k4) == 4 or \ | |
| mitu_tugevusega(k2, k3, k4, k5) == 4 | |
| def kakspaari(k1, k2, k3, k4, k5): | |
| if paar(k1, k2, -1, -2, -3) and paar(k3, k4, -1, -2, -3): | |
| return True | |
| if paar(k1, k2, -1, -2, -3) and paar(k4, k5, -1, -2, -3): | |
| return True | |
| if paar(k2, k3, -1, -2, -3) and paar(k4, k5, -1, -2, -3): | |
| return True | |
| return False | |
| def rida(k1, k2, k3, k4, k5): | |
| return k1+1 == k2 and k2+1 == k3 and k3+1 == k4 and k4+1 == k5 | |
| def yhestmastist(m1, m2, m3, m4, m5): | |
| return m1 == m2 and m2 == m3 and m3 == m4 and m4 == m5 | |
| def mast(kaart): | |
| return kaart[1] | |
| def maja(k1, k2, k3, k4, k5): | |
| a = mitu_tugevusega(k1, k2, k3) | |
| b = mitu_tugevusega(k3, k4, k5) | |
| return a + b == 5 | |
| def tugevus(kaart): | |
| taht = kaart[0] | |
| if taht == 'K': return 12 | |
| if taht == 'Q': return 11 | |
| if taht == 'J': return 10 | |
| return int(taht) | |
| def k2si(kaart1, kaart2, kaart3, kaart4, kaart5): | |
| # Lihtsustused: kaartide seas pole ässa | |
| # kaardid on järjestatud tugevuse järjekorras | |
| mast1 = mast(kaart1) | |
| tugevus1 = tugevus(kaart1) | |
| mast2 = mast(kaart2) | |
| tugevus2 = tugevus(kaart2) | |
| mast3 = mast(kaart3) | |
| tugevus3 = tugevus(kaart3) | |
| mast4 = mast(kaart4) | |
| tugevus4 = tugevus(kaart4) | |
| mast5 = mast(kaart5) | |
| tugevus5 = tugevus(kaart5) | |
| if yhestmastist(mast1, mast2, mast3, mast4, mast5) and rida(tugevus1, tugevus2, tugevus3, tugevus4, tugevus5): | |
| return 'mastirida' | |
| if nelik(tugevus1, tugevus2, tugevus3, tugevus4, tugevus5): | |
| return 'nelik' | |
| if maja(tugevus1, tugevus2, tugevus3, tugevus4, tugevus5): | |
| return 'maja' | |
| if yhestmastist(mast1, mast2, mast3, mast4, mast5): | |
| return 'mast' | |
| if rida(tugevus1, tugevus2, tugevus3, tugevus4, tugevus5): | |
| return 'rida' | |
| if kolmik(tugevus1, tugevus2, tugevus3, tugevus4, tugevus5): | |
| return 'kolmik' | |
| if kakspaari(tugevus1, tugevus2, tugevus3, tugevus4, tugevus5): | |
| return 'kaks paari' | |
| if paar(tugevus1, tugevus2, tugevus3, tugevus4, tugevus5): | |
| return 'üks paar' | |
| return 'kõrge kaart' | |
| # Käte genereerimine | |
| # MASTID = '♥♦♣♠' | |
| # KAARDID = '23456789JQK' | |
| # from random import * | |
| # from collections import defaultdict | |
| # gen_kaart = lambda: choice(KAARDID) + choice(MASTID) | |
| # gen_kasi = lambda: tuple(sorted([gen_kaart() for _ in range(5)], key=tugevus)) | |
| # def gen_kasi(): | |
| # l = set() | |
| # while len(l) < 5: | |
| # l.add(gen_kaart()) | |
| # return tuple(sorted(l, key=tugevus)) | |
| # r = set() | |
| # naited = defaultdict(set) | |
| # for _ in range(100000): | |
| # kasi = gen_kasi() | |
| # tyyp = k2si(*kasi) | |
| # if len(naited[tyyp]) < 10: | |
| # naited[tyyp].add(kasi) | |
| # print(kasi, tyyp) | |
| # Siit edasi testid, mitte näppida! | |
| def type_miss(type, hand_function, test_data, echo=True): | |
| misses = 0 | |
| for hand in test_data[type]: | |
| answer_given = hand_function(*hand) | |
| if answer_given != type: | |
| if echo: print(hand, 'on', repr(type), 'mitte', repr(answer_given)) | |
| misses += 1 | |
| if echo: print("") | |
| return misses | |
| def testi(hand_function, test_data): | |
| test_count_total = 0 | |
| hit_perc = {} | |
| for type in test_data.keys(): | |
| test_count = len(test_data[type]) | |
| test_count_total += test_count | |
| hit_perc[type] = 1 - type_miss(type, hand_function, test_data) / test_count | |
| print("\n\n----- Testide tulemused -----\n") | |
| total_hit_perc = 0 | |
| for type in test_data.keys(): | |
| print("%11s: %5.1f%%" % (type, hit_perc[type] * 100)) | |
| total_hit_perc += hit_perc[type] * len(test_data[type]) / test_count_total | |
| print("\nKokku: %.1f%%" % (total_hit_perc*100)) | |
| test_andmed = {'kaks paari': [('5♦', '5♣', 'J♠', 'J♣', 'Q♠'), | |
| ('4♥', '4♣', 'Q♠', 'Q♣', 'K♦'), | |
| ('6♠', '6♣', 'Q♣', 'Q♥', 'K♥'), | |
| ('2♦', '2♠', '3♠', '3♦', 'K♠'), | |
| ('2♦', '2♣', '4♦', 'J♦', 'J♠'), | |
| ('3♠', 'J♠', 'J♣', 'K♦', 'K♥'), | |
| ('5♠', '7♥', '7♠', 'Q♣', 'Q♥'), | |
| ('2♠', '4♥', '4♣', '9♠', '9♣'), | |
| ('7♣', '7♠', '8♦', 'Q♦', 'Q♥'), | |
| ('4♣', '4♠', '5♥', '5♦', 'K♦')], | |
| 'kolmik': [('4♠', '5♠', '7♥', '7♣', '7♠'), | |
| ('6♣', 'J♦', 'K♣', 'K♠', 'K♦'), | |
| ('6♥', 'J♥', 'J♠', 'J♣', 'K♠'), | |
| ('3♠', '3♦', '3♥', '6♥', 'J♣'), | |
| ('2♣', '6♣', '6♥', '6♦', '7♠'), | |
| ('2♠', 'J♠', 'J♦', 'J♣', 'Q♠'), | |
| ('2♥', '5♦', '7♥', '7♣', '7♦'), | |
| ('8♦', '8♠', '8♣', '9♣', 'J♥'), | |
| ('2♥', '2♠', '2♣', '5♦', '7♥'), | |
| ('3♦', '7♣', '9♠', '9♣', '9♦')], | |
| 'kõrge kaart': [('5♦', '6♥', '7♠', '9♦', 'J♣'), | |
| ('2♦', '3♣', '8♥', '9♣', 'K♠'), | |
| ('2♠', '5♣', '8♠', 'J♥', 'Q♣'), | |
| ('2♦', '4♥', '7♣', 'J♠', 'Q♦'), | |
| ('4♠', '5♦', '6♣', '9♣', 'J♥'), | |
| ('3♣', '5♥', '6♥', '8♥', '9♥'), | |
| ('3♣', '4♣', '7♦', '8♠', 'Q♠'), | |
| ('2♣', '5♥', '7♥', '9♣', 'J♣'), | |
| ('2♠', '4♠', '8♠', 'J♦', 'K♥'), | |
| ('4♦', '7♠', '8♣', 'Q♣', 'K♠')], | |
| 'maja': [('7♦', '7♣', 'Q♠', 'Q♥', 'Q♦'), | |
| ('7♠', '7♣', 'J♠', 'J♦', 'J♣'), | |
| ('7♥', '7♠', '9♠', '9♣', '9♥'), | |
| ('4♦', '4♣', 'Q♠', 'Q♣', 'Q♥'), | |
| ('3♠', '3♥', '8♣', '8♠', '8♥'), | |
| ('4♥', '4♣', '8♠', '8♦', '8♥'), | |
| ('2♥', '2♠', 'J♠', 'J♦', 'J♣'), | |
| ('5♦', '5♣', '7♦', '7♣', '7♠'), | |
| ('7♦', '7♠', '8♠', '8♦', '8♥'), | |
| ('5♥', '5♦', '7♥', '7♣', '7♠')], | |
| 'mast': [('4♦', '6♦', '8♦', 'J♦', 'Q♦'), | |
| ('3♣', '4♣', '7♣', '8♣', '9♣'), | |
| ('4♣', '7♣', '8♣', '9♣', 'K♣'), | |
| ('5♠', '6♠', '8♠', '9♠', 'K♠'), | |
| ('3♣', '5♣', '7♣', 'J♣', 'Q♣'), | |
| ('2♥', '4♥', '9♥', 'J♥', 'Q♥'), | |
| ('4♥', '7♥', '8♥', 'J♥', 'K♥'), | |
| ('4♣', '8♣', '9♣', 'J♣', 'Q♣'), | |
| ('5♦', '6♦', '7♦', '9♦', 'Q♦'), | |
| ('2♣', '3♣', '7♣', '8♣', 'J♣')], | |
| 'mastirida': [('7♠', '8♠', '9♠', 'J♠', 'Q♠'), | |
| ('6♦', '7♦', '8♦', '9♦', 'J♦'), | |
| ('7♣', '8♣', '9♣', 'J♣', 'Q♣')], | |
| 'nelik': [('2♦', '6♠', '6♣', '6♥', '6♦'), | |
| ('J♦', 'K♣', 'K♠', 'K♦', 'K♥'), | |
| ('8♣', '8♠', '8♦', '8♥', '9♣'), | |
| ('3♥', 'Q♠', 'Q♣', 'Q♥', 'Q♦'), | |
| ('5♥', '5♦', '5♠', '5♣', 'Q♥'), | |
| ('4♦', '6♠', '6♣', '6♥', '6♦'), | |
| ('2♥', '2♦', '2♠', '2♣', 'J♠'), | |
| ('3♣', '3♠', '3♦', '3♥', '5♥'), | |
| ('2♥', '2♦', '2♠', '2♣', '5♥'), | |
| ('8♣', '8♠', '8♦', '8♥', '9♦')], | |
| 'rida': [('3♠', '4♦', '5♠', '6♦', '7♥'), | |
| ('4♠', '5♥', '6♠', '7♣', '8♠'), | |
| ('8♥', '9♣', 'J♦', 'Q♣', 'K♦'), | |
| ('3♥', '4♥', '5♣', '6♥', '7♠'), | |
| ('2♣', '3♠', '4♦', '5♣', '6♠'), | |
| ('7♦', '8♣', '9♣', 'J♥', 'Q♦'), | |
| ('6♣', '7♥', '8♠', '9♠', 'J♥'), | |
| ('6♦', '7♥', '8♦', '9♦', 'J♣'), | |
| ('5♣', '6♦', '7♦', '8♦', '9♣'), | |
| ('4♠', '5♥', '6♦', '7♦', '8♣')], | |
| 'üks paar': [('3♣', '3♦', '7♦', 'J♠', 'K♣'), | |
| ('3♥', '5♠', '9♣', 'J♠', 'J♣'), | |
| ('2♠', '6♦', '7♣', '7♠', '9♦'), | |
| ('3♦', '4♦', '9♦', 'Q♣', 'Q♥'), | |
| ('3♣', '3♠', '4♦', '9♥', 'J♥'), | |
| ('6♠', '7♦', '9♥', '9♦', 'K♦'), | |
| ('4♠', '5♣', 'Q♠', 'K♣', 'K♦'), | |
| ('2♦', '8♠', '8♥', 'Q♥', 'K♣'), | |
| ('4♠', 'J♥', 'J♦', 'Q♣', 'K♦'), | |
| ('2♥', '6♣', '6♥', '9♠', 'J♦')]} | |
| if __name__ == "__main__": | |
| #from kaardid import k2si | |
| testi(k2si, test_andmed) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Tiimi liikmed: Marko, Anna-Maria, Rndo, Andrey | |
| def paar(t1, t2, t3, t4, t5): | |
| if (t1 == t2) or (t2 == t3) or (t3 == t4) or (t4 == t5): | |
| return True | |
| return False | |
| def mast(t1,t2,t3,t4,t5): | |
| if(t1 == t2) and (t2==t3) and (t3==t4) and (t4 == t5): | |
| return True | |
| return False | |
| def maja(t1,t2,t3,t4,t5): | |
| if (t1 == t2) and (t3 == t4 and t3 == t5): | |
| return True | |
| return False | |
| def rida(t1,t2,t3,t4,t5): | |
| t1=tugevus(t1) | |
| t2=tugevus(t2) | |
| t3=tugevus(t3) | |
| t4=tugevus(t4) | |
| t5=tugevus(t5) | |
| if t2 - t1 == 1 and t3-t2 == 1 and t4 - t3 == 1 and t5 - t4 == 1: | |
| return True | |
| else: | |
| return False | |
| def tugevus(kaart): | |
| taht = kaart[0] | |
| if taht == "J": | |
| return 10 | |
| elif taht == "Q": | |
| return 11 | |
| elif taht == "K": | |
| return 12 | |
| else: | |
| return int(taht) | |
| def mastirida(t1, t2, t3, t4, t5): | |
| if(rida(t1[0],t2[0],t3[0],t4[0],t5[0]) and mast(t1[1],t2[1],t3[1],t4[1],t5[1])): | |
| return True | |
| else: | |
| return False | |
| def kaks_paari(t1, t2, t3, t4, t5): | |
| if (t1 == t2) and (t3 == t4): | |
| return True | |
| if (t1==t2) and (t4==t5): | |
| return True | |
| if (t2==t3) and (t4==t5): | |
| return True | |
| else: | |
| return False | |
| def kolmik(t1, t2, t3, t4, t5): | |
| if (t1==t2) and (t2==t3): | |
| return True | |
| if (t2==t3) and (t3==t4): | |
| return True | |
| if (t3==t4) and (t4==t5): | |
| return True | |
| else: | |
| return False | |
| def nelik(t1, t2, t3, t4, t5): | |
| if (t1==t2) and (t2==t3) and (t3==t4): | |
| return True | |
| if (t2==t3) and (t3==t4) and (t4==t5): | |
| return True | |
| else: | |
| return False | |
| def k2si(kaart1, kaart2, kaart3, kaart4, kaart5): | |
| if mastirida(kaart1, kaart2, kaart3, kaart4, kaart5): | |
| return 'mastirida' | |
| elif nelik(kaart1[0], kaart2[0], kaart3[0], kaart4[0], kaart5[0]): | |
| return 'nelik' | |
| elif maja(kaart1[0], kaart2[0], kaart3[0], kaart4[0], kaart5[0]): | |
| return 'maja' | |
| elif mast(kaart1[1], kaart2[1], kaart3[1], kaart4[1], kaart5[1]): | |
| return 'mast' | |
| elif rida(kaart1[0],kaart2[0],kaart3[0],kaart4[0],kaart5[0]): | |
| return 'rida' | |
| elif kolmik(kaart1[0], kaart2[0], kaart3[0], kaart4[0], kaart5[0]): | |
| return 'kolmik' | |
| elif kaks_paari(kaart1[0], kaart2[0], kaart3[0], kaart4[0], kaart5[0]): | |
| return 'kaks paari' | |
| elif paar(kaart1[0], kaart2[0], kaart3[0], kaart4[0], kaart5[0]): | |
| return 'üks paar' | |
| else: | |
| return 'kõrge kaart' | |
| # Siit edasi testid, mitte näppida! | |
| def type_miss(type, hand_function, test_data, echo=True): | |
| misses = 0 | |
| for hand in test_data[type]: | |
| answer_given = hand_function(*hand) | |
| if answer_given != type: | |
| if echo: print(hand, 'on', repr(type), 'mitte', repr(answer_given)) | |
| misses += 1 | |
| if echo: print("") | |
| return misses | |
| def testi(hand_function, test_data): | |
| test_count_total = 0 | |
| hit_perc = {} | |
| for type in test_data.keys(): | |
| test_count = len(test_data[type]) | |
| test_count_total += test_count | |
| hit_perc[type] = 1 - type_miss(type, hand_function, test_data) / test_count | |
| print("\n\n----- Testide tulemused -----\n") | |
| total_hit_perc = 0 | |
| for type in test_data.keys(): | |
| print("%11s: %5.1f%%" % (type, hit_perc[type] * 100)) | |
| total_hit_perc += hit_perc[type] * len(test_data[type]) / test_count_total | |
| print("\nKokku: %.1f%%" % (total_hit_perc*100)) | |
| test_andmed = {'kaks paari': [('5♦', '5♣', 'J♠', 'J♣', 'Q♠'), | |
| ('4♥', '4♣', 'Q♠', 'Q♣', 'K♦'), | |
| ('6♠', '6♣', 'Q♣', 'Q♥', 'K♥'), | |
| ('2♦', '2♠', '3♠', '3♦', 'K♠'), | |
| ('2♦', '2♣', '4♦', 'J♦', 'J♠'), | |
| ('3♠', 'J♠', 'J♣', 'K♦', 'K♥'), | |
| ('5♠', '7♥', '7♠', 'Q♣', 'Q♥'), | |
| ('2♠', '4♥', '4♣', '9♠', '9♣'), | |
| ('7♣', '7♠', '8♦', 'Q♦', 'Q♥'), | |
| ('4♣', '4♠', '5♥', '5♦', 'K♦')], | |
| 'kolmik': [('4♠', '5♠', '7♥', '7♣', '7♠'), | |
| ('6♣', 'J♦', 'K♣', 'K♠', 'K♦'), | |
| ('6♥', 'J♥', 'J♠', 'J♣', 'K♠'), | |
| ('3♠', '3♦', '3♥', '6♥', 'J♣'), | |
| ('2♣', '6♣', '6♥', '6♦', '7♠'), | |
| ('2♠', 'J♠', 'J♦', 'J♣', 'Q♠'), | |
| ('2♥', '5♦', '7♥', '7♣', '7♦'), | |
| ('8♦', '8♠', '8♣', '9♣', 'J♥'), | |
| ('2♥', '2♠', '2♣', '5♦', '7♥'), | |
| ('3♦', '7♣', '9♠', '9♣', '9♦')], | |
| 'kõrge kaart': [('5♦', '6♥', '7♠', '9♦', 'J♣'), | |
| ('2♦', '3♣', '8♥', '9♣', 'K♠'), | |
| ('2♠', '5♣', '8♠', 'J♥', 'Q♣'), | |
| ('2♦', '4♥', '7♣', 'J♠', 'Q♦'), | |
| ('4♠', '5♦', '6♣', '9♣', 'J♥'), | |
| ('3♣', '5♥', '6♥', '8♥', '9♥'), | |
| ('3♣', '4♣', '7♦', '8♠', 'Q♠'), | |
| ('2♣', '5♥', '7♥', '9♣', 'J♣'), | |
| ('2♠', '4♠', '8♠', 'J♦', 'K♥'), | |
| ('4♦', '7♠', '8♣', 'Q♣', 'K♠')], | |
| 'maja': [('7♦', '7♣', 'Q♠', 'Q♥', 'Q♦'), | |
| ('7♠', '7♣', 'J♠', 'J♦', 'J♣'), | |
| ('7♥', '7♠', '9♠', '9♣', '9♥'), | |
| ('4♦', '4♣', 'Q♠', 'Q♣', 'Q♥'), | |
| ('3♠', '3♥', '8♣', '8♠', '8♥'), | |
| ('4♥', '4♣', '8♠', '8♦', '8♥'), | |
| ('2♥', '2♠', 'J♠', 'J♦', 'J♣'), | |
| ('5♦', '5♣', '7♦', '7♣', '7♠'), | |
| ('7♦', '7♠', '8♠', '8♦', '8♥'), | |
| ('5♥', '5♦', '7♥', '7♣', '7♠')], | |
| 'mast': [('4♦', '6♦', '8♦', 'J♦', 'Q♦'), | |
| ('3♣', '4♣', '7♣', '8♣', '9♣'), | |
| ('4♣', '7♣', '8♣', '9♣', 'K♣'), | |
| ('5♠', '6♠', '8♠', '9♠', 'K♠'), | |
| ('3♣', '5♣', '7♣', 'J♣', 'Q♣'), | |
| ('2♥', '4♥', '9♥', 'J♥', 'Q♥'), | |
| ('4♥', '7♥', '8♥', 'J♥', 'K♥'), | |
| ('4♣', '8♣', '9♣', 'J♣', 'Q♣'), | |
| ('5♦', '6♦', '7♦', '9♦', 'Q♦'), | |
| ('2♣', '3♣', '7♣', '8♣', 'J♣')], | |
| 'mastirida': [('7♠', '8♠', '9♠', 'J♠', 'Q♠'), | |
| ('6♦', '7♦', '8♦', '9♦', 'J♦'), | |
| ('7♣', '8♣', '9♣', 'J♣', 'Q♣')], | |
| 'nelik': [('2♦', '6♠', '6♣', '6♥', '6♦'), | |
| ('J♦', 'K♣', 'K♠', 'K♦', 'K♥'), | |
| ('8♣', '8♠', '8♦', '8♥', '9♣'), | |
| ('3♥', 'Q♠', 'Q♣', 'Q♥', 'Q♦'), | |
| ('5♥', '5♦', '5♠', '5♣', 'Q♥'), | |
| ('4♦', '6♠', '6♣', '6♥', '6♦'), | |
| ('2♥', '2♦', '2♠', '2♣', 'J♠'), | |
| ('3♣', '3♠', '3♦', '3♥', '5♥'), | |
| ('2♥', '2♦', '2♠', '2♣', '5♥'), | |
| ('8♣', '8♠', '8♦', '8♥', '9♦')], | |
| 'rida': [('3♠', '4♦', '5♠', '6♦', '7♥'), | |
| ('4♠', '5♥', '6♠', '7♣', '8♠'), | |
| ('8♥', '9♣', 'J♦', 'Q♣', 'K♦'), | |
| ('3♥', '4♥', '5♣', '6♥', '7♠'), | |
| ('2♣', '3♠', '4♦', '5♣', '6♠'), | |
| ('7♦', '8♣', '9♣', 'J♥', 'Q♦'), | |
| ('6♣', '7♥', '8♠', '9♠', 'J♥'), | |
| ('6♦', '7♥', '8♦', '9♦', 'J♣'), | |
| ('5♣', '6♦', '7♦', '8♦', '9♣'), | |
| ('4♠', '5♥', '6♦', '7♦', '8♣')], | |
| 'üks paar': [('3♣', '3♦', '7♦', 'J♠', 'K♣'), | |
| ('3♥', '5♠', '9♣', 'J♠', 'J♣'), | |
| ('2♠', '6♦', '7♣', '7♠', '9♦'), | |
| ('3♦', '4♦', '9♦', 'Q♣', 'Q♥'), | |
| ('3♣', '3♠', '4♦', '9♥', 'J♥'), | |
| ('6♠', '7♦', '9♥', '9♦', 'K♦'), | |
| ('4♠', '5♣', 'Q♠', 'K♣', 'K♦'), | |
| ('2♦', '8♠', '8♥', 'Q♥', 'K♣'), | |
| ('4♠', 'J♥', 'J♦', 'Q♣', 'K♦'), | |
| ('2♥', '6♣', '6♥', '9♠', 'J♦')]} | |
| if __name__ == "__main__": | |
| testi(k2si, test_andmed) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment