diff --git a/src/hackerrank/interview_preparation_kit/arrays/cruch_bruteforce_test.py b/src/hackerrank/interview_preparation_kit/arrays/cruch_bruteforce_test.py index f5bfc328..dd669411 100644 --- a/src/hackerrank/interview_preparation_kit/arrays/cruch_bruteforce_test.py +++ b/src/hackerrank/interview_preparation_kit/arrays/cruch_bruteforce_test.py @@ -1,12 +1,12 @@ import unittest from pathlib import Path -from ....hackerrank.lib.loader import load_test_cases +from ....lib.loader import loadTestCases from .cruch_bruteforce import arrayManipulation FILE_PATH = str(Path(__file__).resolve().parent) -CRUCH_SMALL_TEST_CASES = load_test_cases( +CRUCH_SMALL_TEST_CASES = loadTestCases( FILE_PATH + '/cruch.testcases.json') diff --git a/src/hackerrank/interview_preparation_kit/arrays/cruch_optimized_test.py b/src/hackerrank/interview_preparation_kit/arrays/cruch_optimized_test.py index c936c47d..d8deaaf8 100644 --- a/src/hackerrank/interview_preparation_kit/arrays/cruch_optimized_test.py +++ b/src/hackerrank/interview_preparation_kit/arrays/cruch_optimized_test.py @@ -1,12 +1,12 @@ import unittest from pathlib import Path -from ....hackerrank.lib.loader import load_test_cases +from ....lib.loader import loadTestCases from .cruch_optimized import arrayManipulation FILE_PATH = str(Path(__file__).resolve().parent) -CRUCH_SMALL_TEST_CASES = load_test_cases( +CRUCH_SMALL_TEST_CASES = loadTestCases( FILE_PATH + '/cruch.testcases.json') diff --git a/src/hackerrank/interview_preparation_kit/arrays/ctci_array_left_rotation_test.py b/src/hackerrank/interview_preparation_kit/arrays/ctci_array_left_rotation_test.py index 5008a0b4..d29a1792 100644 --- a/src/hackerrank/interview_preparation_kit/arrays/ctci_array_left_rotation_test.py +++ b/src/hackerrank/interview_preparation_kit/arrays/ctci_array_left_rotation_test.py @@ -1,12 +1,12 @@ import unittest from pathlib import Path -from ....hackerrank.lib.loader import load_test_cases +from ....lib.loader import loadTestCases from .ctci_array_left_rotation import rotLeft, rotLeftOne FILE_PATH = str(Path(__file__).resolve().parent) -TEST_CASES = load_test_cases( +TEST_CASES = loadTestCases( FILE_PATH + '/ctci_array_left_rotation.testcases.json') diff --git a/src/hackerrank/interview_preparation_kit/arrays/minimum_swaps_2_test.py b/src/hackerrank/interview_preparation_kit/arrays/minimum_swaps_2_test.py index 35442032..67364e7f 100644 --- a/src/hackerrank/interview_preparation_kit/arrays/minimum_swaps_2_test.py +++ b/src/hackerrank/interview_preparation_kit/arrays/minimum_swaps_2_test.py @@ -1,12 +1,12 @@ import unittest from pathlib import Path -from ....hackerrank.lib.loader import load_test_cases +from ....lib.loader import loadTestCases from .minimum_swaps_2 import minimumSwaps FILE_PATH = str(Path(__file__).resolve().parent) -TEST_CASES = load_test_cases( +TEST_CASES = loadTestCases( FILE_PATH + '/minimum_swaps_2.testcases.json') diff --git a/src/hackerrank/interview_preparation_kit/arrays/new_year_chaos_test.py b/src/hackerrank/interview_preparation_kit/arrays/new_year_chaos_test.py index 02e3fd13..14488074 100644 --- a/src/hackerrank/interview_preparation_kit/arrays/new_year_chaos_test.py +++ b/src/hackerrank/interview_preparation_kit/arrays/new_year_chaos_test.py @@ -1,12 +1,12 @@ import unittest from pathlib import Path -from ....hackerrank.lib.loader import load_test_cases +from ....lib.loader import loadTestCases from .new_year_chaos import minimumBribes, minimumBribesText FILE_PATH = str(Path(__file__).resolve().parent) -TEST_CASES = load_test_cases( +TEST_CASES = loadTestCases( FILE_PATH + '/new_year_chaos.testcases.json') diff --git a/src/hackerrank/interview_preparation_kit/arrays/two_d_array_test.py b/src/hackerrank/interview_preparation_kit/arrays/two_d_array_test.py index bb3fa23a..ea9ef52c 100644 --- a/src/hackerrank/interview_preparation_kit/arrays/two_d_array_test.py +++ b/src/hackerrank/interview_preparation_kit/arrays/two_d_array_test.py @@ -1,12 +1,12 @@ import unittest from pathlib import Path -from ....hackerrank.lib.loader import load_test_cases +from ....lib.loader import loadTestCases from .two_d_array import hourglassSum FILE_PATH = str(Path(__file__).resolve().parent) -TEST_CASES = load_test_cases( +TEST_CASES = loadTestCases( FILE_PATH + '/two_d_array.testcases.json') diff --git a/src/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/count_triplets_1_test.py b/src/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/count_triplets_1_test.py index 5c7fbce3..efd8e97b 100644 --- a/src/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/count_triplets_1_test.py +++ b/src/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/count_triplets_1_test.py @@ -1,15 +1,15 @@ import unittest from pathlib import Path -from ....hackerrank.lib.loader import load_test_cases +from ....lib.loader import loadTestCases from .count_triplets_1 import countTriplets, countTripletsBruteForce FILE_PATH = str(Path(__file__).resolve().parent) -SMALL_TEST_CASES = load_test_cases( +SMALL_TEST_CASES = loadTestCases( FILE_PATH + '/count_triplets_1.small.testcases.json') -TEST_CASES_BIG = load_test_cases( +TEST_CASES_BIG = loadTestCases( FILE_PATH + '/count_triplets_1.big.testcases.json') diff --git a/src/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/ctci_ransom_note_test.py b/src/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/ctci_ransom_note_test.py index 5f8934a5..35e65cf0 100644 --- a/src/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/ctci_ransom_note_test.py +++ b/src/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/ctci_ransom_note_test.py @@ -1,12 +1,12 @@ import unittest from pathlib import Path -from ....hackerrank.lib.loader import load_test_cases +from ....lib.loader import loadTestCases from .ctci_ransom_note import checkMagazine, checkMagazineText FILE_PATH = str(Path(__file__).resolve().parent) -TEST_CASES = load_test_cases( +TEST_CASES = loadTestCases( FILE_PATH + '/ctci_ransom_note.testcases.json') diff --git a/src/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/frequency_queries_test.py b/src/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/frequency_queries_test.py index f6530580..e93e2255 100644 --- a/src/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/frequency_queries_test.py +++ b/src/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/frequency_queries_test.py @@ -1,12 +1,12 @@ import unittest from pathlib import Path -from ....hackerrank.lib.loader import load_test_cases +from ....lib.loader import loadTestCases from .frequency_queries import freqQuery FILE_PATH = str(Path(__file__).resolve().parent) -TEST_CASES = load_test_cases( +TEST_CASES = loadTestCases( FILE_PATH + '/frequency_queries.testcases.json') diff --git a/src/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/sherlock_and_anagrams.json b/src/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/sherlock_and_anagrams.testcases.json similarity index 100% rename from src/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/sherlock_and_anagrams.json rename to src/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/sherlock_and_anagrams.testcases.json diff --git a/src/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/sherlock_and_anagrams_test.py b/src/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/sherlock_and_anagrams_test.py index 798aa394..2e8798b8 100644 --- a/src/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/sherlock_and_anagrams_test.py +++ b/src/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/sherlock_and_anagrams_test.py @@ -1,13 +1,13 @@ import unittest -import json from pathlib import Path +from ....lib.loader import loadTestCases from .sherlock_and_anagrams import sherlockAndAnagrams FILE_PATH = str(Path(__file__).resolve().parent) -JSON_DATA_FILE = FILE_PATH + '/sherlock_and_anagrams.json' -with open(JSON_DATA_FILE, encoding="utf-8") as file: - TEST_CASES = json.load(file) + +TEST_CASES = loadTestCases( + FILE_PATH + '/sherlock_and_anagrams.testcases.json') class TestSherlockAndAnagrams(unittest.TestCase): diff --git a/src/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/two_strings_test.py b/src/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/two_strings_test.py index 8ea68b6f..9c2382b9 100644 --- a/src/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/two_strings_test.py +++ b/src/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/two_strings_test.py @@ -1,12 +1,12 @@ import unittest from pathlib import Path -from ....hackerrank.lib.loader import load_test_cases +from ....lib.loader import loadTestCases from .two_strings import twoStrings FILE_PATH = str(Path(__file__).resolve().parent) -TEST_CASES = load_test_cases( +TEST_CASES = loadTestCases( FILE_PATH + '/two_strings.testcases.json') diff --git a/src/hackerrank/interview_preparation_kit/dynamic_programming/max_array_sum_test.py b/src/hackerrank/interview_preparation_kit/dynamic_programming/max_array_sum_test.py index 96047422..0f87221d 100644 --- a/src/hackerrank/interview_preparation_kit/dynamic_programming/max_array_sum_test.py +++ b/src/hackerrank/interview_preparation_kit/dynamic_programming/max_array_sum_test.py @@ -1,12 +1,12 @@ import unittest from pathlib import Path -from ....hackerrank.lib.loader import load_test_cases +from ....lib.loader import loadTestCases from .max_array_sum import maxSubsetSum FILE_PATH = str(Path(__file__).resolve().parent) -TEST_CASES = load_test_cases( +TEST_CASES = loadTestCases( FILE_PATH + '/max_array_sum.testcases.json') diff --git a/src/hackerrank/interview_preparation_kit/graphs/roads_and_libraries_test.py b/src/hackerrank/interview_preparation_kit/graphs/roads_and_libraries_test.py index 4b73c5bc..9bc2a515 100644 --- a/src/hackerrank/interview_preparation_kit/graphs/roads_and_libraries_test.py +++ b/src/hackerrank/interview_preparation_kit/graphs/roads_and_libraries_test.py @@ -1,12 +1,12 @@ import unittest from pathlib import Path -from ....hackerrank.lib.loader import load_test_cases +from ....lib.loader import loadTestCases from .roads_and_libraries import roadsAndLibraries FILE_PATH = str(Path(__file__).resolve().parent) -TEST_CASES = load_test_cases( +TEST_CASES = loadTestCases( FILE_PATH + '/roads_and_libraries.testcases.json') diff --git a/src/hackerrank/interview_preparation_kit/greedy_algorithms/angry_children_test.py b/src/hackerrank/interview_preparation_kit/greedy_algorithms/angry_children_test.py index c9e43c32..c9f36f77 100644 --- a/src/hackerrank/interview_preparation_kit/greedy_algorithms/angry_children_test.py +++ b/src/hackerrank/interview_preparation_kit/greedy_algorithms/angry_children_test.py @@ -1,12 +1,12 @@ import unittest from pathlib import Path -from ....hackerrank.lib.loader import load_test_cases +from ....lib.loader import loadTestCases from .angry_children import maxMin FILE_PATH = str(Path(__file__).resolve().parent) -TEST_CASES = load_test_cases( +TEST_CASES = loadTestCases( FILE_PATH + '/angry_children.testcases.json') diff --git a/src/hackerrank/interview_preparation_kit/greedy_algorithms/greedy_florist_test.py b/src/hackerrank/interview_preparation_kit/greedy_algorithms/greedy_florist_test.py index c500631a..aac125cf 100644 --- a/src/hackerrank/interview_preparation_kit/greedy_algorithms/greedy_florist_test.py +++ b/src/hackerrank/interview_preparation_kit/greedy_algorithms/greedy_florist_test.py @@ -1,12 +1,12 @@ import unittest from pathlib import Path -from ....hackerrank.lib.loader import load_test_cases +from ....lib.loader import loadTestCases from .greedy_florist import getMinimumCost FILE_PATH = str(Path(__file__).resolve().parent) -TEST_CASES = load_test_cases( +TEST_CASES = loadTestCases( FILE_PATH + '/greedy_florist.testcases.json') diff --git a/src/hackerrank/interview_preparation_kit/greedy_algorithms/luck_balance_test.py b/src/hackerrank/interview_preparation_kit/greedy_algorithms/luck_balance_test.py index 39ebfdd1..feb25242 100644 --- a/src/hackerrank/interview_preparation_kit/greedy_algorithms/luck_balance_test.py +++ b/src/hackerrank/interview_preparation_kit/greedy_algorithms/luck_balance_test.py @@ -1,12 +1,12 @@ import unittest from pathlib import Path -from ....hackerrank.lib.loader import load_test_cases +from ....lib.loader import loadTestCases from .luck_balance import luckBalance FILE_PATH = str(Path(__file__).resolve().parent) -TEST_CASES = load_test_cases( +TEST_CASES = loadTestCases( FILE_PATH + '/luck_balance.testcases.json') diff --git a/src/hackerrank/interview_preparation_kit/greedy_algorithms/minimum_absolute_difference_in_an_array_test.py b/src/hackerrank/interview_preparation_kit/greedy_algorithms/minimum_absolute_difference_in_an_array_test.py index a5c81b41..704cf4f7 100644 --- a/src/hackerrank/interview_preparation_kit/greedy_algorithms/minimum_absolute_difference_in_an_array_test.py +++ b/src/hackerrank/interview_preparation_kit/greedy_algorithms/minimum_absolute_difference_in_an_array_test.py @@ -1,12 +1,12 @@ import unittest from pathlib import Path -from ....hackerrank.lib.loader import load_test_cases +from ....lib.loader import loadTestCases from .minimum_absolute_difference_in_an_array import minimumAbsoluteDifference FILE_PATH = str(Path(__file__).resolve().parent) -TEST_CASES = load_test_cases( +TEST_CASES = loadTestCases( FILE_PATH + '/minimum_absolute_difference_in_an_array.testcases.json') diff --git a/src/hackerrank/interview_preparation_kit/miscellaneous/flipping_bits_test.py b/src/hackerrank/interview_preparation_kit/miscellaneous/flipping_bits_test.py index 9f5db04a..084eb06b 100644 --- a/src/hackerrank/interview_preparation_kit/miscellaneous/flipping_bits_test.py +++ b/src/hackerrank/interview_preparation_kit/miscellaneous/flipping_bits_test.py @@ -1,12 +1,12 @@ import unittest from pathlib import Path -from ....hackerrank.lib.loader import load_test_cases +from ....lib.loader import loadTestCases from .flipping_bits import flippingBits FILE_PATH = str(Path(__file__).resolve().parent) -TEST_CASES = load_test_cases( +TEST_CASES = loadTestCases( FILE_PATH + '/flipping_bits.testcases.json') diff --git a/src/hackerrank/interview_preparation_kit/miscellaneous/friend_circle_queries_test.py b/src/hackerrank/interview_preparation_kit/miscellaneous/friend_circle_queries_test.py index 2b78e91c..7efff9df 100644 --- a/src/hackerrank/interview_preparation_kit/miscellaneous/friend_circle_queries_test.py +++ b/src/hackerrank/interview_preparation_kit/miscellaneous/friend_circle_queries_test.py @@ -1,13 +1,13 @@ import unittest from pathlib import Path -from ....hackerrank.lib.loader import load_test_cases +from ....lib.loader import loadTestCases from .friend_circle_queries import maxCircle FILE_PATH = str(Path(__file__).resolve().parent) -TEST_CASES = load_test_cases( +TEST_CASES = loadTestCases( FILE_PATH + '/friend_circle_queries.testcases.json') diff --git a/src/hackerrank/interview_preparation_kit/recursion_and_backtracking/ctci_fibonacci_numbers.testcases.json b/src/hackerrank/interview_preparation_kit/recursion_and_backtracking/ctci_fibonacci_numbers.testcases.json new file mode 100644 index 00000000..dfa753cf --- /dev/null +++ b/src/hackerrank/interview_preparation_kit/recursion_and_backtracking/ctci_fibonacci_numbers.testcases.json @@ -0,0 +1,17 @@ +[ + { + "title": "Sample Test case 0", + "input": 5, + "expected": 5 + }, + { + "title": "Sample Test case 1", + "input": 12, + "expected": 144 + }, + { + "title": "Sample Test case 2", + "input": 17, + "expected": 1597 + } +] diff --git a/src/hackerrank/interview_preparation_kit/recursion_and_backtracking/ctci_fibonacci_numbers_test.py b/src/hackerrank/interview_preparation_kit/recursion_and_backtracking/ctci_fibonacci_numbers_test.py index 6c110ae7..2922743b 100644 --- a/src/hackerrank/interview_preparation_kit/recursion_and_backtracking/ctci_fibonacci_numbers_test.py +++ b/src/hackerrank/interview_preparation_kit/recursion_and_backtracking/ctci_fibonacci_numbers_test.py @@ -1,23 +1,13 @@ import unittest +from pathlib import Path + +from ....lib.loader import loadTestCases from .ctci_fibonacci_numbers import fibonacci -TEST_CASES = [ - { - 'title': 'Sample Test case 0', - 'input': 5, - 'answer': 5 - }, - { - 'title': 'Sample Test case 1', - 'input': 12, - 'answer': 144, - }, - { - 'title': 'Sample Test case 2', - 'input': 17, - 'answer': 1597 - } -] +FILE_PATH = str(Path(__file__).resolve().parent) + +TEST_CASES = loadTestCases( + FILE_PATH + '/ctci_fibonacci_numbers.testcases.json') class TestRecursionFibonacciNumbers(unittest.TestCase): @@ -27,6 +17,6 @@ def test_fibonacci(self): for _, _tt in enumerate(TEST_CASES): self.assertEqual( - fibonacci(_tt['input']), _tt['answer'], + fibonacci(_tt['input']), _tt['expected'], f"{_} | fibonacci({_tt['input']}) must be " - f"=> {_tt['answer']} in {_tt['title']}") + f"=> {_tt['expected']} in {_tt['title']}") diff --git a/src/hackerrank/interview_preparation_kit/recursion_and_backtracking/ctci_recursive_staircase_test.py b/src/hackerrank/interview_preparation_kit/recursion_and_backtracking/ctci_recursive_staircase_test.py index 99511979..ee5e38c7 100644 --- a/src/hackerrank/interview_preparation_kit/recursion_and_backtracking/ctci_recursive_staircase_test.py +++ b/src/hackerrank/interview_preparation_kit/recursion_and_backtracking/ctci_recursive_staircase_test.py @@ -1,24 +1,18 @@ import unittest -import json from pathlib import Path from typing import Dict +from ....lib.loader import loadTestCases from .ctci_recursive_staircase import stepPerms, stepPermsComputWithCache from .ctci_recursive_staircase_alternative import stepPerms as stepPermsAlt FILE_PATH = str(Path(__file__).resolve().parent) -with open( - FILE_PATH + '/ctci_recursive_staircase.testcases.json', - encoding="utf-8" -) as file1: - TEST_CASES = json.load(file1) - -with open( - FILE_PATH + '/ctci_recursive_staircase_generalized.testcases.json', - encoding="utf-8" -) as file2: - TEST_CASES_GENERALIZED = json.load(file2) +TEST_CASES = loadTestCases( + FILE_PATH + '/ctci_recursive_staircase.testcases.json') + +TEST_CASES_GENERALIZED = loadTestCases( + FILE_PATH + '/ctci_recursive_staircase_generalized.testcases.json') class TestStaircase(unittest.TestCase): diff --git a/src/hackerrank/interview_preparation_kit/recursion_and_backtracking/recursive_digit_sum.testcases.json b/src/hackerrank/interview_preparation_kit/recursion_and_backtracking/recursive_digit_sum.testcases.json new file mode 100644 index 00000000..3c15cb4e --- /dev/null +++ b/src/hackerrank/interview_preparation_kit/recursion_and_backtracking/recursive_digit_sum.testcases.json @@ -0,0 +1,33 @@ +[ + { + "title": "Sample Test case 0", + "n": "148", + "k": 3, + "expected": 3 + }, + { + "title": "Sample Test case 7", + "n": + "2365978831649490136475575038877779575813226775851820912370812124502641538947920808397703549713678494683928497712437176140282589350277653479225520602813456433277417366680426198633681891184348757007292907409160353745221125354212095528784124728447770959861439390350308313917365021363541712618686942946773324003146008424205688630371656757561012224744901800726911246423272186301595490993253791386102270201965996662707215300748516732223935858816466886068592299708740453558018878677753623653080545592459765998008028026982510689469213738241205802446029154833458048894002646934119082621498341445221491190955459548371083839625590505228681017724678315572531551988758568150699821635779156685637531274097856486075649357610713833072735231599919848220063026429718137766286716343385059699133211699189933339174843625266398503099203416124466032711453854413933737536836406105991857744766344461162222670876732729171585512468615558499979720269427922798431312270483732004392503905160233457811525428432787732543799783309593536386190295516419339222642886780012683583264436427241020490358960438948951090123073035203797984302163150042110707217274102457735317367100133807782064391421012191958312396649052833396257876824943425814834615313474161638240747120342368147351931074481983318414461554116111216672594256301273113776892080967125790153125125885441941114178586071406149630777323200516190208241341822285244325578953416388462284725673478766919050744786263188733438572307443267700831425575113213359873223948072988922668251652320316884761627830570057061821492039968369341602081382603302965910382997241199808824091331180464950187035576778206683245316006405529597170652549163351875206280564448346510252775085876212617353369513619186390565654064068546863018765466029315754619416429621887091818939474391383675337791979997519954871635692656223852981330368145996344325688247632566665645262588764650823901065646663460851602833982853795901687202035893967893724362979886948663369428689585509715442019662325024294581705265808022570365351645495802686891955348084550615538750809287498241260408673517746608582833123696027380353038348218786331710334697053069152326732702246704177127367642287975998486114018970510842276024855162228267767755948030029723573646908844109049374244456580474922058250964260437721278380069311972455077102266167098465788845261016395772392904280411167763443571285141388567074805986331207454652671618663858701085276806486000014124900483188940484497173286284987124699515039831183902383877120136788492339903316093693938833730548247174799553092402671083313285813003903363625219370039413610850308966558948057932583576771492037811460439359542902624599661588624295232252616245186844975995180218889230403968087888108494214819234992007182241562844376961711438491105585390645332161544542326095869642445733823661806228697208277656426326128938546125761166960351482948539114133280810916317873360419836067625116114001377672929333638768292095236809153349426894896869446197395671771932928211109385884940274160388152027885130001908095515987519207099973668415699818805100890690896126345099249836616348702742776559368591004254298734292430313132506862931339852599450961120591169865484036943294045257801193102728400887526383477970523720630900867795111210451854194391002244150921934506879640791680297603712618076174694948300699937409787596860516266369711284028834238022724596540529491965656156574337073988564171171562036245389632730259264953520190321920347601255396137920500496074443380910841069973360586715775083998842187392360751892748665579312212647821816086677544702037289983388842777905728540745718314922321086695691823249801139552886748181144717500999021690749662561227798159566905725946118195067702032931332172088385727012140744362147720922176656204772910422189621466379287662792372374145383317294646977085291873933547226857758530880168793511465268400187943977613894365634645591604177130794105552582447385631392788652188052953414781129655671439788151513996304231024358843023105354157338564270003904673736178109502550650713167258319522545824056524791781105181639237127875356417268878249642171688744070159985867211941494396566216365392991627962886902198712613982017603237174682825814797983967054038269833008728407345912699623004623467287738296110774212005294050799218227654983820235796069236099706911525806244933683548619651925300435846989868138976944006822652462513903624200398184640627878400159480147462063679751851193719499676402496701528971830054482832320057097082360875809145428036636600549270698504540758319126452884313155162288201445118708935758033035083555929081756050975974040793712887964439001525986626643925845343840647344753344394209812309532147589135665638895095150172324875219965305745649692175878476631167339609984047545458299489650202318886162798841051758853022389219423402386031324398337411422060786064174337895040820526914615325075313448800789763344707190242881920892579588963376086146960633381215378914452523108903834607764477580583821712879080194987840450703336371649758616364805184545636558639909806705757141231728890945705281578891764357530862478284617890886615612608017861029342475376559517893073874528735689724989147963227442563141916115837740823088920018306622898786665697436694114134566032298418513134640110497915781256013658157626876007303865007938799121914067544773285391447059337068967640221461662745594510968605338966108977317081902507941847885331172633986644666002196037962414608353479436996966565895587993028389782659415971152403029518493019029205611785920255633270560095438637318885230551138363908343081523545591224134467205438637992783829259919217744713264231649621461535887435410548366408012977973203459983761967831442350892580662433295719596302715165438994052920660204857279403439598616231631708579334309451829396365207336409446940374623441420435439989058506571776629533788131454314121504595268258657172190365178279637763408587826711292793610001999656837923788319438384372260168303662843086203813103771712423574817520332644704407707584630263836497460974781867543909787940278207946350316762434685271126547340568379697114143432270663747926423410939366867323227307888313764100323948708488249291932762190879422500980573314510481474989813161818046596342997489244092851481456635241462079248335760582513488928151459281907438730238065382341691833250917737617330046824951709287812847967496061820848573006896422220098029186444659696393722864425443174804115295661452095886127784785656396807536597522937517010395385281668735072368362229248386090765688300603292905737705424037244946746445640174635429078019229973366378415273692915764515173009646632256826278792193749314522687455317800604524740119271772480341422364037622841158408693597798800732407214231715176216414119458470398433698630492023148912788371335047944731850924533486580463894436416946298869397354691924065211837844914014837056117850937923852135361875895012428779496342389871713463333419295329258828037504468306416370691252321110783303933730724981220411655523128107813025668960480700236419568269112404054054013255954297124592253625509027169128346186086879842249233969016492009074059375814396213470661585889025858173286307393463166771278528359358679107663618852904436981159408575155381452852538538161326799566605463071606829507721627760695695298663348037499346965080571845983286426728562771057921340809114888275207834276278723670038713251819678117637307797126524335451875674322135660001938501046206646725087020563845482789165114015140237476770960542212541262365674096922377749965211055083880951870947588439313087505990968967904452943561444336754539161497904651842954423690339860136920316455021978105823558793189756025331264642326253916951167641064028719315782248353333706214902160610987866723541787809188383034860801960339654982067421224921066723519523759569071993168783868197116308035921525346492767986090665094574147296651701824963729081365854249511700896706324052098265362182297874817162325372836249682033460453106454759294279011517085352648052686287835826956331856000530656816094258663224239727567999798475939204052755892731997428948369450364798425229576414764799300949556003266863462364785971588403993047829919672884685002127952124093077144535644623315342420032186819555104280110883937594970132297831017511120535205810256141119655336117669459771376005411248881994640753601606805393583940281645304757423903447751752383876356426048210439751541893763188890403792485964646286690953432929961087972625329578244854544295899075470411907779181886987220577672224785177419791954783277253421243333498197370278143247403594312138218592254174197047846302000164735966226394070001204323764164912690541799927573761616438820835021411743898829210130296149250887986491553547221899402096605456148489590866922112294624680546281250567297009605663936998939340731539740128008013832941045470722922727419033890751091173021386847464099733717633316304536930447077599861319788266450790785072377536483225439587367122393671167950836029510856465462738804587713268436992128892171509071641161165880608224322539890931445909082786991260734902410993863449929626354001121991398640542747424891140797115509495342486678389565402504229791244504867508301342798992744796454984189142033193018659744179186808244403688375727771580862592404226696538971232713170205127941869698531179001250635892043048835137445218382957976989721755706861701366347894376710532041643279157597459032202591566808167568419301491754821992741943996185368155017334681412500723160011387595363158410560488203993638466615700276165502049790282263414502568166837301414930688269694553727263733690839349714652132206285243796184219815308355634318194592022805870387606542297381666905458451054204419608774066516116961329031388338821535694456637910702328420582124442440139995352494707284230907975581024232726130673375360163257154562557607055131368534412734263401317160921075802949888891100336188281116884460133424076740001934250575466042922149519629860344218277351996828116545149383178424384811799946144322536711027462093434842033767504492071349955677051700618860129870409856113128392373584622061075886499407885141951318807519645386474", + "k": 100000, + "expected": 7 + }, + { + "title": "Sample Test case 10", + "n": "9875", + "k": 4, + "expected": 8 + }, + { + "title": "Sample Test case 11", + "n": "123", + "k": 3, + "expected": 9 + }, + { + "title": "Sample Test case 10", + "n": "9875", + "k": 4, + "expected": 8 + } +] diff --git a/src/hackerrank/interview_preparation_kit/recursion_and_backtracking/recursive_digit_sum_test.py b/src/hackerrank/interview_preparation_kit/recursion_and_backtracking/recursive_digit_sum_test.py index 2329b671..95194ef2 100644 --- a/src/hackerrank/interview_preparation_kit/recursion_and_backtracking/recursive_digit_sum_test.py +++ b/src/hackerrank/interview_preparation_kit/recursion_and_backtracking/recursive_digit_sum_test.py @@ -1,163 +1,13 @@ import unittest +from pathlib import Path + +from ....lib.loader import loadTestCases from .recursive_digit_sum import superDigit -TEST_CASES = [ - { - 'title': 'Sample Test case 0', - 'n': 123, - 'k': 3, - 'answer': 9 - }, - { - 'title': 'Sample Test case 7', - 'n': - '2365978831649490136475575038877779575813226775851820912370812124502641' - '5389479208083977035497136784946839284977124371761402825893502776534792' - '2552060281345643327741736668042619863368189118434875700729290740916035' - '3745221125354212095528784124728447770959861439390350308313917365021363' - '5417126186869429467733240031460084242056886303716567575610122247449018' - '0072691124642327218630159549099325379138610227020196599666270721530074' - '8516732223935858816466886068592299708740453558018878677753623653080545' - '5924597659980080280269825106894692137382412058024460291548334580488940' - '0264693411908262149834144522149119095545954837108383962559050522868101' - '7724678315572531551988758568150699821635779156685637531274097856486075' - '6493576107138330727352315999198482200630264297181377662867163433850596' - '9913321169918993333917484362526639850309920341612446603271145385441393' - '3737536836406105991857744766344461162222670876732729171585512468615558' - '4999797202694279227984313122704837320043925039051602334578115254284327' - '8773254379978330959353638619029551641933922264288678001268358326443642' - '7241020490358960438948951090123073035203797984302163150042110707217274' - '1024577353173671001338077820643914210121919583123966490528333962578768' - '2494342581483461531347416163824074712034236814735193107448198331841446' - '1554116111216672594256301273113776892080967125790153125125885441941114' - '1785860714061496307773232005161902082413418222852443255789534163884622' - '8472567347876691905074478626318873343857230744326770083142557511321335' - '9873223948072988922668251652320316884761627830570057061821492039968369' - '3416020813826033029659103829972411998088240913311804649501870355767782' - '0668324531600640552959717065254916335187520628056444834651025277508587' - '6212617353369513619186390565654064068546863018765466029315754619416429' - '6218870918189394743913836753377919799975199548716356926562238529813303' - '6814599634432568824763256666564526258876465082390106564666346085160283' - '3982853795901687202035893967893724362979886948663369428689585509715442' - '0196623250242945817052658080225703653516454958026868919553480845506155' - '3875080928749824126040867351774660858283312369602738035303834821878633' - '1710334697053069152326732702246704177127367642287975998486114018970510' - '8422760248551622282677677559480300297235736469088441090493742444565804' - '7492205825096426043772127838006931197245507710226616709846578884526101' - '6395772392904280411167763443571285141388567074805986331207454652671618' - '6638587010852768064860000141249004831889404844971732862849871246995150' - '3983118390238387712013678849233990331609369393883373054824717479955309' - '2402671083313285813003903363625219370039413610850308966558948057932583' - '5767714920378114604393595429026245996615886242952322526162451868449759' - '9518021888923040396808788810849421481923499200718224156284437696171143' - '8491105585390645332161544542326095869642445733823661806228697208277656' - '4263261289385461257611669603514829485391141332808109163178733604198360' - '6762511611400137767292933363876829209523680915334942689489686944619739' - '5671771932928211109385884940274160388152027885130001908095515987519207' - '0999736684156998188051008906908961263450992498366163487027427765593685' - '9100425429873429243031313250686293133985259945096112059116986548403694' - '3294045257801193102728400887526383477970523720630900867795111210451854' - '1943910022441509219345068796407916802976037126180761746949483006999374' - '0978759686051626636971128402883423802272459654052949196565615657433707' - '3988564171171562036245389632730259264953520190321920347601255396137920' - '5004960744433809108410699733605867157750839988421873923607518927486655' - '7931221264782181608667754470203728998338884277790572854074571831492232' - '1086695691823249801139552886748181144717500999021690749662561227798159' - '5669057259461181950677020329313321720883857270121407443621477209221766' - '5620477291042218962146637928766279237237414538331729464697708529187393' - '3547226857758530880168793511465268400187943977613894365634645591604177' - '1307941055525824473856313927886521880529534147811296556714397881515139' - '9630423102435884302310535415733856427000390467373617810950255065071316' - '7258319522545824056524791781105181639237127875356417268878249642171688' - '7440701599858672119414943965662163653929916279628869021987126139820176' - '0323717468282581479798396705403826983300872840734591269962300462346728' - '7738296110774212005294050799218227654983820235796069236099706911525806' - '2449336835486196519253004358469898681389769440068226524625139036242003' - '9818464062787840015948014746206367975185119371949967640249670152897183' - '0054482832320057097082360875809145428036636600549270698504540758319126' - '4528843131551622882014451187089357580330350835559290817560509759740407' - '9371288796443900152598662664392584534384064734475334439420981230953214' - '7589135665638895095150172324875219965305745649692175878476631167339609' - '9840475454582994896502023188861627988410517588530223892194234023860313' - '2439833741142206078606417433789504082052691461532507531344880078976334' - '4707190242881920892579588963376086146960633381215378914452523108903834' - '6077644775805838217128790801949878404507033363716497586163648051845456' - '3655863990980670575714123172889094570528157889176435753086247828461789' - '0886615612608017861029342475376559517893073874528735689724989147963227' - '4425631419161158377408230889200183066228987866656974366941141345660322' - '9841851313464011049791578125601365815762687600730386500793879912191406' - '7544773285391447059337068967640221461662745594510968605338966108977317' - '0819025079418478853311726339866446660021960379624146083534794369969665' - '6589558799302838978265941597115240302951849301902920561178592025563327' - '0560095438637318885230551138363908343081523545591224134467205438637992' - '7838292599192177447132642316496214615358874354105483664080129779732034' - '5998376196783144235089258066243329571959630271516543899405292066020485' - '7279403439598616231631708579334309451829396365207336409446940374623441' - '4204354399890585065717766295337881314543141215045952682586571721903651' - '7827963776340858782671129279361000199965683792378831943838437226016830' - '3662843086203813103771712423574817520332644704407707584630263836497460' - '9747818675439097879402782079463503167624346852711265473405683796971141' - '4343227066374792642341093936686732322730788831376410032394870848824929' - '1932762190879422500980573314510481474989813161818046596342997489244092' - '8514814566352414620792483357605825134889281514592819074387302380653823' - '4169183325091773761733004682495170928781284796749606182084857300689642' - '2220098029186444659696393722864425443174804115295661452095886127784785' - '6563968075365975229375170103953852816687350723683622292483860907656883' - '0060329290573770542403724494674644564017463542907801922997336637841527' - '3692915764515173009646632256826278792193749314522687455317800604524740' - '1192717724803414223640376228411584086935977988007324072142317151762164' - '1411945847039843369863049202314891278837133504794473185092453348658046' - '3894436416946298869397354691924065211837844914014837056117850937923852' - '1353618758950124287794963423898717134633334192953292588280375044683064' - '1637069125232111078330393373072498122041165552312810781302566896048070' - '0236419568269112404054054013255954297124592253625509027169128346186086' - '8798422492339690164920090740593758143962134706615858890258581732863073' - '9346316677127852835935867910766361885290443698115940857515538145285253' - '8538161326799566605463071606829507721627760695695298663348037499346965' - '0805718459832864267285627710579213408091148882752078342762787236700387' - '1325181967811763730779712652433545187567432213566000193850104620664672' - '5087020563845482789165114015140237476770960542212541262365674096922377' - '7499652110550838809518709475884393130875059909689679044529435614443367' - '5453916149790465184295442369033986013692031645502197810582355879318975' - '6025331264642326253916951167641064028719315782248353333706214902160610' - '9878667235417878091883830348608019603396549820674212249210667235195237' - '5956907199316878386819711630803592152534649276798609066509457414729665' - '1701824963729081365854249511700896706324052098265362182297874817162325' - '3728362496820334604531064547592942790115170853526480526862878358269563' - '3185600053065681609425866322423972756799979847593920405275589273199742' - '8948369450364798425229576414764799300949556003266863462364785971588403' - '9930478299196728846850021279521240930771445356446233153424200321868195' - '5510428011088393759497013229783101751112053520581025614111965533611766' - '9459771376005411248881994640753601606805393583940281645304757423903447' - '7517523838763564260482104397515418937631888904037924859646462866909534' - '3292996108797262532957824485454429589907547041190777918188698722057767' - '2224785177419791954783277253421243333498197370278143247403594312138218' - '5922541741970478463020001647359662263940700012043237641649126905417999' - '2757376161643882083502141174389882921013029614925088798649155354722189' - '9402096605456148489590866922112294624680546281250567297009605663936998' - '9393407315397401280080138329410454707229227274190338907510911730213868' - '4746409973371763331630453693044707759986131978826645079078507237753648' - '3225439587367122393671167950836029510856465462738804587713268436992128' - '8921715090716411611658806082243225398909314459090827869912607349024109' - '9386344992962635400112199139864054274742489114079711550949534248667838' - '9565402504229791244504867508301342798992744796454984189142033193018659' - '7441791868082444036883757277715808625924042266965389712327131702051279' - '4186969853117900125063589204304883513744521838295797698972175570686170' - '1366347894376710532041643279157597459032202591566808167568419301491754' - '8219927419439961853681550173346814125007231600113875953631584105604882' - '0399363846661570027616550204979028226341450256816683730141493068826969' - '4553727263733690839349714652132206285243796184219815308355634318194592' - '0228058703876065422973816669054584510542044196087740665161169613290313' - '8833882153569445663791070232842058212444244013999535249470728423090797' - '5581024232726130673375360163257154562557607055131368534412734263401317' - '1609210758029498888911003361882811168844601334240767400019342505754660' - '4292214951962986034421827735199682811654514938317842438481179994614432' - '2536711027462093434842033767504492071349955677051700618860129870409856' - '113128392373584622061075886499407885141951318807519645386474', - 'k': 100000, - 'answer': 7 - } -] +FILE_PATH = str(Path(__file__).resolve().parent) + +TEST_CASES = loadTestCases( + FILE_PATH + '/recursive_digit_sum.testcases.json') class TestRecursiveDigitSum(unittest.TestCase): @@ -167,6 +17,6 @@ def test_super_digit(self): for _, _tt in enumerate(TEST_CASES): self.assertEqual( - superDigit(_tt['n'], _tt['k']), _tt['answer'], + superDigit(_tt['n'], _tt['k']), _tt['expected'], f"{_} | superDigit({_tt['n']}, {_tt['k']}) must be " - f"=> {_tt['answer']} in {_tt['title']}") + f"=> {_tt['expected']} in {_tt['title']}") diff --git a/src/hackerrank/interview_preparation_kit/search/ctci_ice_cream_parlor_bruteforce_test.py b/src/hackerrank/interview_preparation_kit/search/ctci_ice_cream_parlor_bruteforce_test.py index 870a7fde..38736bb4 100644 --- a/src/hackerrank/interview_preparation_kit/search/ctci_ice_cream_parlor_bruteforce_test.py +++ b/src/hackerrank/interview_preparation_kit/search/ctci_ice_cream_parlor_bruteforce_test.py @@ -2,7 +2,7 @@ import os from pathlib import Path -from ....hackerrank.lib.loader import load_test_cases +from ....lib.loader import loadTestCases from .ctci_ice_cream_parlor_bruteforce import whatFlavors BRUTEFORCE = os.getenv('BRUTEFORCE') @@ -10,9 +10,9 @@ FILE_PATH = str(Path(__file__).resolve().parent) -TEST_CASES_SMALL_CASES = load_test_cases( +TEST_CASES_SMALL_CASES = loadTestCases( FILE_PATH + '/ctci_ice_cream_parlor.testcases.json') -TEST_CASES_BORDER_CASES = load_test_cases( +TEST_CASES_BORDER_CASES = loadTestCases( FILE_PATH + '/ctci_ice_cream_parlor.border_testcases.json') diff --git a/src/hackerrank/interview_preparation_kit/search/ctci_ice_cream_parlor_test.py b/src/hackerrank/interview_preparation_kit/search/ctci_ice_cream_parlor_test.py index 3148b9fc..226447bf 100644 --- a/src/hackerrank/interview_preparation_kit/search/ctci_ice_cream_parlor_test.py +++ b/src/hackerrank/interview_preparation_kit/search/ctci_ice_cream_parlor_test.py @@ -1,14 +1,14 @@ import unittest from pathlib import Path -from ....hackerrank.lib.loader import load_test_cases +from ....lib.loader import loadTestCases from .ctci_ice_cream_parlor import whatFlavors FILE_PATH = str(Path(__file__).resolve().parent) -TEST_CASES = load_test_cases(FILE_PATH + '/ctci_ice_cream_parlor.testcases.json') -TEST_CASES_BORDER_CASES = load_test_cases( +TEST_CASES = loadTestCases(FILE_PATH + '/ctci_ice_cream_parlor.testcases.json') +TEST_CASES_BORDER_CASES = loadTestCases( FILE_PATH + '/ctci_ice_cream_parlor.border_testcases.json') diff --git a/src/hackerrank/interview_preparation_kit/search/swap_nodes_algo_big_test.py b/src/hackerrank/interview_preparation_kit/search/swap_nodes_algo_big_test.py index c948b57d..6eb14297 100644 --- a/src/hackerrank/interview_preparation_kit/search/swap_nodes_algo_big_test.py +++ b/src/hackerrank/interview_preparation_kit/search/swap_nodes_algo_big_test.py @@ -1,11 +1,11 @@ import unittest from pathlib import Path -from ....hackerrank.lib.loader import load_test_cases +from ....lib.loader import loadTestCases from .swap_nodes_algo import swapNodes, buildTree, flattenTree FILE_PATH = str(Path(__file__).resolve().parent) -BIG_TEST_CASES = load_test_cases(FILE_PATH + '/swap_nodes_algo.big.testcases.json') +BIG_TEST_CASES = loadTestCases(FILE_PATH + '/swap_nodes_algo.big.testcases.json') class TestSwapNodesAlgoBig(unittest.TestCase): diff --git a/src/hackerrank/interview_preparation_kit/search/swap_nodes_algo_test.py b/src/hackerrank/interview_preparation_kit/search/swap_nodes_algo_test.py index 2b3729a8..d78f4b67 100644 --- a/src/hackerrank/interview_preparation_kit/search/swap_nodes_algo_test.py +++ b/src/hackerrank/interview_preparation_kit/search/swap_nodes_algo_test.py @@ -1,11 +1,11 @@ import unittest from pathlib import Path -from ....hackerrank.lib.loader import load_test_cases +from ....lib.loader import loadTestCases from .swap_nodes_algo import swapNodes, swapBranch, buildTree, flattenTree FILE_PATH = str(Path(__file__).resolve().parent) -TEST_CASES = load_test_cases(FILE_PATH + '/swap_nodes_algo.testcases.json') +TEST_CASES = loadTestCases(FILE_PATH + '/swap_nodes_algo.testcases.json') class TestSwapNodesAlgo(unittest.TestCase): diff --git a/src/hackerrank/interview_preparation_kit/sorting/ctci_bubble_sort_test.py b/src/hackerrank/interview_preparation_kit/sorting/ctci_bubble_sort_test.py index 1a983898..0ef5d972 100644 --- a/src/hackerrank/interview_preparation_kit/sorting/ctci_bubble_sort_test.py +++ b/src/hackerrank/interview_preparation_kit/sorting/ctci_bubble_sort_test.py @@ -1,12 +1,12 @@ import unittest from pathlib import Path -from ....hackerrank.lib.loader import load_test_cases +from ....lib.loader import loadTestCases from .ctci_bubble_sort import SortableGroup, countSwaps FILE_PATH = str(Path(__file__).resolve().parent) -TEST_CASES = load_test_cases(FILE_PATH + '/ctci_bubble_sort.testcases.json') +TEST_CASES = loadTestCases(FILE_PATH + '/ctci_bubble_sort.testcases.json') class TestBubleSort(unittest.TestCase): diff --git a/src/hackerrank/interview_preparation_kit/sorting/ctci_comparator_sorting_test.py b/src/hackerrank/interview_preparation_kit/sorting/ctci_comparator_sorting_test.py index bdcc7af0..813afda0 100644 --- a/src/hackerrank/interview_preparation_kit/sorting/ctci_comparator_sorting_test.py +++ b/src/hackerrank/interview_preparation_kit/sorting/ctci_comparator_sorting_test.py @@ -1,12 +1,12 @@ import unittest from pathlib import Path -from ....hackerrank.lib.loader import load_test_cases +from ....lib.loader import loadTestCases from .ctci_comparator_sorting import Player, SortablePlayer, comparatorSorting FILE_PATH = str(Path(__file__).resolve().parent) -TEST_CASES = load_test_cases(FILE_PATH + '/ctci_comparator_sorting.testcases.json') +TEST_CASES = loadTestCases(FILE_PATH + '/ctci_comparator_sorting.testcases.json') class TestComparatorSorting(unittest.TestCase): diff --git a/src/hackerrank/interview_preparation_kit/sorting/mark_and_toys_test.py b/src/hackerrank/interview_preparation_kit/sorting/mark_and_toys_test.py index 347b9933..db581665 100644 --- a/src/hackerrank/interview_preparation_kit/sorting/mark_and_toys_test.py +++ b/src/hackerrank/interview_preparation_kit/sorting/mark_and_toys_test.py @@ -1,12 +1,12 @@ import unittest from pathlib import Path -from ....hackerrank.lib.loader import load_test_cases +from ....lib.loader import loadTestCases from .mark_and_toys import maximumToys FILE_PATH = str(Path(__file__).resolve().parent) -TEST_CASES = load_test_cases(FILE_PATH + '/mark_and_toys.testcases.json') +TEST_CASES = loadTestCases(FILE_PATH + '/mark_and_toys.testcases.json') class TestMarkAndToys(unittest.TestCase): diff --git a/src/hackerrank/interview_preparation_kit/stacks_and_queues/balanced_brackets_test.py b/src/hackerrank/interview_preparation_kit/stacks_and_queues/balanced_brackets_test.py index 3c435612..9e8a568a 100644 --- a/src/hackerrank/interview_preparation_kit/stacks_and_queues/balanced_brackets_test.py +++ b/src/hackerrank/interview_preparation_kit/stacks_and_queues/balanced_brackets_test.py @@ -1,12 +1,12 @@ import unittest from pathlib import Path -from ....hackerrank.lib.loader import load_test_cases +from ....lib.loader import loadTestCases from .balanced_brackets import isBalanced FILE_PATH = str(Path(__file__).resolve().parent) -TEST_CASES = load_test_cases(FILE_PATH + '/balanced_brackets.testcases.json') +TEST_CASES = loadTestCases(FILE_PATH + '/balanced_brackets.testcases.json') class TestBalancedBrackets(unittest.TestCase): diff --git a/src/hackerrank/interview_preparation_kit/string_manipulation/alternating_characters_test.py b/src/hackerrank/interview_preparation_kit/string_manipulation/alternating_characters_test.py index 8eca8ad9..d4a8cbb3 100644 --- a/src/hackerrank/interview_preparation_kit/string_manipulation/alternating_characters_test.py +++ b/src/hackerrank/interview_preparation_kit/string_manipulation/alternating_characters_test.py @@ -1,12 +1,12 @@ import unittest from pathlib import Path -from ....hackerrank.lib.loader import load_test_cases +from ....lib.loader import loadTestCases from .alternating_characters import alternatingCharacters FILE_PATH = str(Path(__file__).resolve().parent) -TEST_CASES = load_test_cases(FILE_PATH + '/alternating_characters.testcases.json') +TEST_CASES = loadTestCases(FILE_PATH + '/alternating_characters.testcases.json') class TestAlternatingCharacters(unittest.TestCase): diff --git a/src/hackerrank/interview_preparation_kit/string_manipulation/ctci_making_anagrams_test.py b/src/hackerrank/interview_preparation_kit/string_manipulation/ctci_making_anagrams_test.py index 9a74542c..b9cba35b 100644 --- a/src/hackerrank/interview_preparation_kit/string_manipulation/ctci_making_anagrams_test.py +++ b/src/hackerrank/interview_preparation_kit/string_manipulation/ctci_making_anagrams_test.py @@ -1,12 +1,12 @@ import unittest from pathlib import Path -from ....hackerrank.lib.loader import load_test_cases +from ....lib.loader import loadTestCases from .ctci_making_anagrams import makeAnagram FILE_PATH = str(Path(__file__).resolve().parent) -TEST_CASES = load_test_cases(FILE_PATH + '/ctci_making_anagrams.testcases.json') +TEST_CASES = loadTestCases(FILE_PATH + '/ctci_making_anagrams.testcases.json') class TestMakeAnagram(unittest.TestCase): diff --git a/src/hackerrank/interview_preparation_kit/string_manipulation/sherlock_and_valid_string_test.py b/src/hackerrank/interview_preparation_kit/string_manipulation/sherlock_and_valid_string_test.py index b9e08400..144c9525 100644 --- a/src/hackerrank/interview_preparation_kit/string_manipulation/sherlock_and_valid_string_test.py +++ b/src/hackerrank/interview_preparation_kit/string_manipulation/sherlock_and_valid_string_test.py @@ -1,12 +1,12 @@ import unittest from pathlib import Path -from ....hackerrank.lib.loader import load_test_cases +from ....lib.loader import loadTestCases from .sherlock_and_valid_string import isValid FILE_PATH = str(Path(__file__).resolve().parent) -TEST_CASES = load_test_cases(FILE_PATH + '/sherlock_and_valid_string.testcases.json') +TEST_CASES = loadTestCases(FILE_PATH + '/sherlock_and_valid_string.testcases.json') class TestSherklockAndValidString(unittest.TestCase): diff --git a/src/hackerrank/interview_preparation_kit/trees/binary_search_tree_lowest_common_ancestor_test.py b/src/hackerrank/interview_preparation_kit/trees/binary_search_tree_lowest_common_ancestor_test.py index 5cade71e..2113055a 100644 --- a/src/hackerrank/interview_preparation_kit/trees/binary_search_tree_lowest_common_ancestor_test.py +++ b/src/hackerrank/interview_preparation_kit/trees/binary_search_tree_lowest_common_ancestor_test.py @@ -1,13 +1,13 @@ import unittest from pathlib import Path -from ....hackerrank.lib.loader import load_test_cases +from ....lib.loader import loadTestCases from ...lib.tree import BinarySearchTree from .binary_search_tree_lowest_common_ancestor import lca, find FILE_PATH = str(Path(__file__).resolve().parent) -TEST_CASES = load_test_cases( +TEST_CASES = loadTestCases( FILE_PATH + '/binary_search_tree_lowest_common_ancestor.testcases.json') diff --git a/src/hackerrank/interview_preparation_kit/trees/tree_height_of_a_binary_tree_test.py b/src/hackerrank/interview_preparation_kit/trees/tree_height_of_a_binary_tree_test.py index 36f56184..eaf5de56 100644 --- a/src/hackerrank/interview_preparation_kit/trees/tree_height_of_a_binary_tree_test.py +++ b/src/hackerrank/interview_preparation_kit/trees/tree_height_of_a_binary_tree_test.py @@ -1,13 +1,13 @@ import unittest from pathlib import Path -from ....hackerrank.lib.loader import load_test_cases +from ....lib.loader import loadTestCases from ...lib.tree import BinarySearchTree from .tree_height_of_a_binary_tree import height FILE_PATH = str(Path(__file__).resolve().parent) -TEST_CASES = load_test_cases( +TEST_CASES = loadTestCases( FILE_PATH + '/tree_height_of_a_binary_tree.testcases.json') diff --git a/src/hackerrank/lib/loader.py b/src/lib/loader.py similarity index 75% rename from src/hackerrank/lib/loader.py rename to src/lib/loader.py index ac5943e4..f5356ccc 100644 --- a/src/hackerrank/lib/loader.py +++ b/src/lib/loader.py @@ -1,7 +1,7 @@ import json -def load_test_cases(filename: str): +def loadTestCases(filename: str): with open(filename, encoding="utf-8" ) as file: return json.load(file) diff --git a/src/projecteuler/problem0022_test.py b/src/projecteuler/problem0022_test.py index 0ef00166..a96065c0 100755 --- a/src/projecteuler/problem0022_test.py +++ b/src/projecteuler/problem0022_test.py @@ -1,22 +1,23 @@ import unittest -import json -import os +from pathlib import Path + +from ..lib.loader import loadTestCases from .problem0022 import problem0022 +FILE_PATH = str(Path(__file__).resolve().parent) + +NAMES = loadTestCases( + FILE_PATH + '/data/p022_names.json') + + class TestProblem0022(unittest.TestCase): def test_problem0022(self): - file_abs_path = os.path.abspath(os.path.dirname(__file__)) - - with open( - os.path.join(file_abs_path, 'data', 'p022_names.json'), - encoding="utf-8") as read_content: - names = json.load(read_content) - solution_found = 871198282 + solution_found = 871198282 - self.assertEqual( - problem0022(names), solution_found, - f"problem0022({names}) must be " - f"=> {solution_found}") + self.assertEqual( + problem0022(NAMES), solution_found, + f"problem0022({NAMES}) must be " + f"=> {solution_found}")