Skip to content

Commit c9d25dc

Browse files
committed
test: deduplicate pytest params for problems 1280,1327
1 parent a53229d commit c9d25dc

File tree

4 files changed

+237
-450
lines changed

4 files changed

+237
-450
lines changed

tests/test_datafusion.py

Lines changed: 1 addition & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -129,93 +129,7 @@ def test_problem_1148(input_data, expected_data):
129129

130130
@pytest.mark.parametrize(
131131
"input_data, expected_data",
132-
[
133-
pytest.param(
134-
{
135-
"customer_id": [1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 3],
136-
"name": [
137-
"Jhon",
138-
"Daniel",
139-
"Jade",
140-
"Khaled",
141-
"Winston",
142-
"Elvis",
143-
"Anna",
144-
"Maria",
145-
"Jaze",
146-
"Jhon",
147-
"Jade",
148-
],
149-
"visited_on": [
150-
datetime(2019, 1, 1),
151-
datetime(2019, 1, 2),
152-
datetime(2019, 1, 3),
153-
datetime(2019, 1, 4),
154-
datetime(2019, 1, 5),
155-
datetime(2019, 1, 6),
156-
datetime(2019, 1, 7),
157-
datetime(2019, 1, 8),
158-
datetime(2019, 1, 9),
159-
datetime(2019, 1, 10),
160-
datetime(2019, 1, 10),
161-
],
162-
"amount": [100, 110, 120, 130, 110, 140, 150, 80, 110, 130, 150],
163-
},
164-
{
165-
"visited_on": [
166-
datetime(2019, 1, 7),
167-
datetime(2019, 1, 8),
168-
datetime(2019, 1, 9),
169-
datetime(2019, 1, 10),
170-
],
171-
"amount": [860, 840, 840, 1000],
172-
"average_amount": [122.86, 120, 120, 142.86],
173-
},
174-
id="happy_path",
175-
),
176-
pytest.param(
177-
{
178-
"customer_id": [1, 2, 3, 1, 4, 5, 6, 1, 7, 8, 9],
179-
"name": [
180-
"Jhon",
181-
"Daniel",
182-
"Jade",
183-
"Jhon",
184-
"Khaled",
185-
"Winston",
186-
"Elvis",
187-
"Jhon",
188-
"Anna",
189-
"Maria",
190-
"Jaze",
191-
],
192-
"visited_on": [
193-
datetime(2019, 1, 1),
194-
datetime(2019, 1, 2),
195-
datetime(2019, 1, 3),
196-
datetime(2019, 1, 1),
197-
datetime(2019, 1, 4),
198-
datetime(2019, 1, 5),
199-
datetime(2019, 1, 6),
200-
datetime(2019, 1, 1),
201-
datetime(2019, 1, 7),
202-
datetime(2019, 1, 8),
203-
datetime(2019, 1, 9),
204-
],
205-
"amount": [100, 110, 120, 50, 130, 110, 140, 40, 150, 80, 110],
206-
},
207-
{
208-
"visited_on": [
209-
datetime(2019, 1, 7),
210-
datetime(2019, 1, 8),
211-
datetime(2019, 1, 9),
212-
],
213-
"amount": [950, 840, 840],
214-
"average_amount": [135.71, 120, 120],
215-
},
216-
id="duplicated_days",
217-
),
218-
],
132+
PARAMS_PROBLEM_1321,
219133
)
220134
def test_problem_1321(input_data, expected_data):
221135
table = pa.Table.from_pydict(input_data)

tests/test_pandas.py

Lines changed: 3 additions & 225 deletions
Original file line numberDiff line numberDiff line change
@@ -779,120 +779,7 @@ def test_problem_1251(input_data_1, input_data_2, expected_data):
779779

780780
@pytest.mark.parametrize(
781781
"input_data_1, input_data_2, input_data_3, expected_data",
782-
[
783-
pytest.param(
784-
{
785-
"student_id": [1, 2, 13, 6],
786-
"student_name": ["Alice", "Bob", "John", "Alex"],
787-
},
788-
{"subject_name": ["Math", "Physics", "Programming"]},
789-
{
790-
"student_id": [1, 1, 1, 2, 1, 1, 13, 13, 13, 2, 1],
791-
"subject_name": [
792-
"Math",
793-
"Physics",
794-
"Programming",
795-
"Programming",
796-
"Physics",
797-
"Math",
798-
"Math",
799-
"Programming",
800-
"Physics",
801-
"Math",
802-
"Math",
803-
],
804-
},
805-
{
806-
"student_id": [1, 1, 1, 2, 2, 2, 6, 6, 6, 13, 13, 13],
807-
"student_name": [
808-
"Alice",
809-
"Alice",
810-
"Alice",
811-
"Bob",
812-
"Bob",
813-
"Bob",
814-
"Alex",
815-
"Alex",
816-
"Alex",
817-
"John",
818-
"John",
819-
"John",
820-
],
821-
"subject_name": [
822-
"Programming",
823-
"Physics",
824-
"Math",
825-
"Programming",
826-
"Math",
827-
"Physics",
828-
"Programming",
829-
"Physics",
830-
"Math",
831-
"Programming",
832-
"Physics",
833-
"Math",
834-
],
835-
"attended_exams": [1, 2, 3, 1, 1, 0, 0, 0, 0, 1, 1, 1],
836-
},
837-
id="happy_path",
838-
),
839-
pytest.param(
840-
{
841-
"student_id": [1, 2, 13, 6],
842-
"student_name": ["Alice", "Bob", "John", None],
843-
},
844-
{"subject_name": ["Math", "Physics", "Programming"]},
845-
{
846-
"student_id": [1, 1, 1, 2, 1, 1, 13, 13, 13, 2, 1],
847-
"subject_name": [
848-
"Math",
849-
"Physics",
850-
"Programming",
851-
"Programming",
852-
"Physics",
853-
"Math",
854-
"Math",
855-
"Programming",
856-
"Physics",
857-
"Math",
858-
"Math",
859-
],
860-
},
861-
{
862-
"student_id": [1, 1, 1, 2, 2, 2, 6, 6, 6, 13, 13, 13],
863-
"student_name": [
864-
"Alice",
865-
"Alice",
866-
"Alice",
867-
"Bob",
868-
"Bob",
869-
"Bob",
870-
None,
871-
None,
872-
None,
873-
"John",
874-
"John",
875-
"John",
876-
],
877-
"subject_name": [
878-
"Programming",
879-
"Physics",
880-
"Math",
881-
"Programming",
882-
"Math",
883-
"Physics",
884-
"Programming",
885-
"Physics",
886-
"Math",
887-
"Programming",
888-
"Physics",
889-
"Math",
890-
],
891-
"attended_exams": [1, 2, 3, 1, 1, 0, 0, 0, 0, 1, 1, 1],
892-
},
893-
id="happy_path_null_name",
894-
),
895-
],
782+
PARAMS_PROBLEM_1280,
896783
)
897784
def test_problem_1280(input_data_1, input_data_2, input_data_3, expected_data):
898785
table_1 = pd.DataFrame(input_data_1)
@@ -915,93 +802,7 @@ def test_problem_1280(input_data_1, input_data_2, input_data_3, expected_data):
915802

916803
@pytest.mark.parametrize(
917804
"input_data, expected_data",
918-
[
919-
pytest.param(
920-
{
921-
"customer_id": [1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 3],
922-
"name": [
923-
"Jhon",
924-
"Daniel",
925-
"Jade",
926-
"Khaled",
927-
"Winston",
928-
"Elvis",
929-
"Anna",
930-
"Maria",
931-
"Jaze",
932-
"Jhon",
933-
"Jade",
934-
],
935-
"visited_on": [
936-
datetime(2019, 1, 1),
937-
datetime(2019, 1, 2),
938-
datetime(2019, 1, 3),
939-
datetime(2019, 1, 4),
940-
datetime(2019, 1, 5),
941-
datetime(2019, 1, 6),
942-
datetime(2019, 1, 7),
943-
datetime(2019, 1, 8),
944-
datetime(2019, 1, 9),
945-
datetime(2019, 1, 10),
946-
datetime(2019, 1, 10),
947-
],
948-
"amount": [100, 110, 120, 130, 110, 140, 150, 80, 110, 130, 150],
949-
},
950-
{
951-
"visited_on": [
952-
datetime(2019, 1, 7),
953-
datetime(2019, 1, 8),
954-
datetime(2019, 1, 9),
955-
datetime(2019, 1, 10),
956-
],
957-
"amount": [860, 840, 840, 1000],
958-
"average_amount": [122.86, 120, 120, 142.86],
959-
},
960-
id="happy_path",
961-
),
962-
pytest.param(
963-
{
964-
"customer_id": [1, 2, 3, 1, 4, 5, 6, 1, 7, 8, 9],
965-
"name": [
966-
"Jhon",
967-
"Daniel",
968-
"Jade",
969-
"Jhon",
970-
"Khaled",
971-
"Winston",
972-
"Elvis",
973-
"Jhon",
974-
"Anna",
975-
"Maria",
976-
"Jaze",
977-
],
978-
"visited_on": [
979-
datetime(2019, 1, 1),
980-
datetime(2019, 1, 2),
981-
datetime(2019, 1, 3),
982-
datetime(2019, 1, 1),
983-
datetime(2019, 1, 4),
984-
datetime(2019, 1, 5),
985-
datetime(2019, 1, 6),
986-
datetime(2019, 1, 1),
987-
datetime(2019, 1, 7),
988-
datetime(2019, 1, 8),
989-
datetime(2019, 1, 9),
990-
],
991-
"amount": [100, 110, 120, 50, 130, 110, 140, 40, 150, 80, 110],
992-
},
993-
{
994-
"visited_on": [
995-
datetime(2019, 1, 7),
996-
datetime(2019, 1, 8),
997-
datetime(2019, 1, 9),
998-
],
999-
"amount": [950, 840, 840],
1000-
"average_amount": [135.71, 120, 120],
1001-
},
1002-
id="duplicated_days",
1003-
),
1004-
],
805+
PARAMS_PROBLEM_1321,
1005806
)
1006807
def test_problem_1321(input_data, expected_data):
1007808
table = pd.DataFrame(input_data)
@@ -1014,30 +815,7 @@ def test_problem_1321(input_data, expected_data):
1014815

1015816
@pytest.mark.parametrize(
1016817
"input_data_1, input_data_2, expected_data",
1017-
[
1018-
pytest.param(
1019-
{"product_id": [1, 2], "product_name": ["Product A", "Product B"]},
1020-
{
1021-
"product_id": [1, 2],
1022-
"order_date": [datetime(2020, 2, 15), datetime(2020, 2, 20)],
1023-
"unit": [150, 50],
1024-
},
1025-
{"product_name": ["Product A"], "unit": [150]},
1026-
id="happy_path_single_match",
1027-
),
1028-
pytest.param(
1029-
{"product_id": [1], "product_name": ["Product A"]},
1030-
{"product_id": [1], "order_date": [datetime(2020, 3, 1)], "unit": [150]},
1031-
{"product_name": [], "unit": []},
1032-
id="no_matching_year_month",
1033-
),
1034-
pytest.param(
1035-
{"product_id": [1], "product_name": ["Product A"]},
1036-
{"product_id": [1], "order_date": [datetime(2020, 2, 15)], "unit": [50]},
1037-
{"product_name": [], "unit": []},
1038-
id="no_products_with_unit_sum_gte_100",
1039-
),
1040-
],
818+
PARAMS_PROBLEM_1327,
1041819
)
1042820
def test_problem_1327(input_data_1, input_data_2, expected_data):
1043821
table_1 = pd.DataFrame(input_data_1)

0 commit comments

Comments
 (0)