feat: more accurate graph

This commit is contained in:
Yufan You 2020-08-16 15:46:59 +08:00
parent d0c740a1a1
commit d827cb172d
No known key found for this signature in database
GPG Key ID: 863A0F9FA8127FA4
2 changed files with 27 additions and 16 deletions

11
main.py
View File

@ -31,10 +31,13 @@ def this_week() -> str:
def make_graph(percent: float) -> str: def make_graph(percent: float) -> str:
'''Make progress graph from API graph''' '''Make progress graph from API graph'''
done_block = '' blocks = "░▒▓█"
empty_block = '' graph = blocks[3] * int(percent / 4 + 1 / 6)
pc_rnd = round(percent) remainder_block = int((percent + 2 / 3) % 4 * 3 / 4)
return f"{done_block*int(pc_rnd/4)}{empty_block*int(25-int(pc_rnd/4))}" if remainder_block > 0:
graph += blocks[remainder_block]
graph += blocks[0] * (25 - len(graph))
return graph
def get_stats() -> str: def get_stats() -> str:

View File

@ -13,18 +13,26 @@ class TestMain(unittest.TestCase):
"0% should return ░░░░░░░░░░░░░░░░░░░░░░░░░") "0% should return ░░░░░░░░░░░░░░░░░░░░░░░░░")
self.assertEqual(make_graph(100), "█████████████████████████", self.assertEqual(make_graph(100), "█████████████████████████",
"100% should return █████████████████████████") "100% should return █████████████████████████")
self.assertEqual(make_graph(50), "████████████░░░░░░░░░░░░░", self.assertEqual(make_graph(50), "████████████▒░░░░░░░░░░░░",
"50% should return ████████████░░░░░░░░░░░░░") "50% should return ████████████▒░░░░░░░░░░░░")
self.assertEqual(make_graph(25), "██████░░░░░░░░░░░░░░░░░░░", self.assertEqual(make_graph(50.001), "████████████▓░░░░░░░░░░░░",
"25% should return ██████░░░░░░░░░░░░░░░░░░░") "50.001% should return ████████████▓░░░░░░░░░░░░")
self.assertEqual(make_graph(75), "██████████████████░░░░░░░", self.assertEqual(make_graph(25), "██████▒░░░░░░░░░░░░░░░░░░",
"75% should return ██████████████████░░░░░░░") "25% should return ██████▒░░░░░░░░░░░░░░░░░░")
self.assertEqual(make_graph(3.14), "░░░░░░░░░░░░░░░░░░░░░░░░░", self.assertEqual(make_graph(75), "██████████████████▓░░░░░░",
"3.14% should return ░░░░░░░░░░░░░░░░░░░░░░░░░") "75% should return ██████████████████▓░░░░░░")
self.assertEqual(make_graph(9.901), "██░░░░░░░░░░░░░░░░░░░░░░░", self.assertEqual(make_graph(3.14), "▓░░░░░░░░░░░░░░░░░░░░░░░░",
"9.901% should return ██░░░░░░░░░░░░░░░░░░░░░░░") "3.14% should return ▓░░░░░░░░░░░░░░░░░░░░░░░░")
self.assertEqual(make_graph(87.5), "██████████████████████░░░", self.assertEqual(make_graph(9.901), "██▒░░░░░░░░░░░░░░░░░░░░░░",
"87.5% should return ██████████████████████░░░") "9.901% should return ██▒░░░░░░░░░░░░░░░░░░░░░░")
self.assertEqual(make_graph(87.334), "██████████████████████░░░",
"87.334% should return ██████████████████████░░░")
self.assertEqual(make_graph(87.333), "█████████████████████▓░░░",
"87.333% should return █████████████████████▓░░░")
self.assertEqual(make_graph(4.666), "█░░░░░░░░░░░░░░░░░░░░░░░░",
"4.666% should return █░░░░░░░░░░░░░░░░░░░░░░░░")
self.assertEqual(make_graph(4.667), "█▒░░░░░░░░░░░░░░░░░░░░░░░",
"4.667% should return █▒░░░░░░░░░░░░░░░░░░░░░░░")
if __name__ == '__main__': if __name__ == '__main__':