Skip to content

Commit 5f4eceb

Browse files
author
Gonzalo Diaz
committed
[REFACTOR] [Hacker Rank] Interview Preparation Kit: Search: Swap Nodes [Algo]. JSON data load for unit tests.
1 parent c42f46f commit 5f4eceb

File tree

2 files changed

+38
-33
lines changed

2 files changed

+38
-33
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
[
2+
{
3+
"title": "Sample 0",
4+
"nodes": [[2, 3], [-1, -1], [-1, -1]],
5+
"queries": [1, 1],
6+
"answer": [[3, 1, 2], [2, 1, 3]]
7+
},
8+
{
9+
"title": "Sample 1",
10+
"nodes": [[2, 3], [-1, 4], [-1, 5], [-1, -1], [-1, -1]],
11+
"queries": [2],
12+
"answer": [[4, 2, 1, 5, 3]]
13+
},
14+
{
15+
"title": "Sample 2",
16+
"nodes": [[2, 3], [4, -1], [5, -1], [6, -1], [7, 8], [-1, 9],
17+
[-1, -1], [10, 11], [-1, -1], [-1, -1], [-1, -1]],
18+
"queries": [2, 4],
19+
"answer": [[2, 9, 6, 4, 1, 3, 7, 5, 11, 8, 10],
20+
[2, 6, 9, 4, 1, 3, 7, 5, 10, 8, 11]]
21+
},
22+
{
23+
"title": "Sample Test Case 1",
24+
"nodes": [[2, 3], [4, 5], [6, -1], [-1, 7], [8, 9], [10, 11], [12, 13],
25+
[-1, 14], [-1, -1], [15, -1], [16, 17], [-1, -1], [-1, -1],
26+
[-1, -1], [-1, -1], [-1, -1], [-1, -1]],
27+
"queries": [2, 3],
28+
"answer": [[14, 8, 5, 9, 2, 4, 13, 7, 12, 1, 3, 10, 15, 6, 17, 11, 16],
29+
[9, 5, 14, 8, 2, 13, 7, 12, 4, 1, 3, 17, 11, 16, 6, 10, 15]]
30+
}
31+
]

src/hackerrank/interview_preparation_kit/search/swap_nodes_algo_test.py

Lines changed: 7 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,18 @@
11
import unittest
2+
from pathlib import Path
3+
4+
from ....hackerrank.lib.loader import load_test_cases
25
from .swap_nodes_algo import swap_nodes, build_tree, plain_tree, swap_branch
36

7+
FILE_PATH = str(Path(__file__).resolve().parent)
8+
TEST_CASES = load_test_cases(FILE_PATH + '/swap_nodes_algo.testcases.json')
49

5-
class TestSwapNodesAlgo(unittest.TestCase):
610

7-
tests = [
8-
{
9-
'title': 'Sample 0',
10-
'nodes': [[2, 3], [-1, -1], [-1, -1]],
11-
'queries': [1, 1],
12-
'answer': [[3, 1, 2], [2, 1, 3]]
13-
},
14-
{
15-
'title': 'Sample 1',
16-
'nodes': [[2, 3], [-1, 4], [-1, 5], [-1, -1], [-1, -1]],
17-
'queries': [2],
18-
'answer': [[4, 2, 1, 5, 3]]
19-
},
20-
{
21-
'title': 'Sample 2',
22-
'nodes': [[2, 3], [4, -1], [5, -1], [6, -1], [7, 8], [-1, 9],
23-
[-1, -1], [10, 11], [-1, -1], [-1, -1], [-1, -1]],
24-
'queries': [2, 4],
25-
'answer': [[2, 9, 6, 4, 1, 3, 7, 5, 11, 8, 10],
26-
[2, 6, 9, 4, 1, 3, 7, 5, 10, 8, 11]]
27-
},
28-
{
29-
'title': 'Sample Test Case 1',
30-
'nodes': [[2, 3], [4, 5], [6, -1], [-1, 7], [8, 9], [10, 11], [12, 13],
31-
[-1, 14], [-1, -1], [15, -1], [16, 17], [-1, -1], [-1, -1],
32-
[-1, -1], [-1, -1], [-1, -1], [-1, -1]],
33-
'queries': [2, 3],
34-
'answer': [[14, 8, 5, 9, 2, 4, 13, 7, 12, 1, 3, 10, 15, 6, 17, 11, 16],
35-
[9, 5, 14, 8, 2, 13, 7, 12, 4, 1, 3, 17, 11, 16, 6, 10, 15]]
36-
}
37-
]
11+
class TestSwapNodesAlgo(unittest.TestCase):
3812

3913
def test_swap_nodes(self):
4014

41-
for _, _tt in enumerate(self.tests):
15+
for _, _tt in enumerate(TEST_CASES):
4216

4317
self.assertEqual(
4418
swap_nodes(_tt['nodes'], _tt['queries']), _tt['answer'],

0 commit comments

Comments
 (0)