39 lines
1.7 KiB
Python
39 lines
1.7 KiB
Python
from datetime import datetime
|
|
import pytest
|
|
import pandas as pd
|
|
|
|
import lottery_predictor.analyze as analyze
|
|
|
|
|
|
def test_load_dataframe() -> None:
|
|
pb_start = datetime(2015, 10, 4)
|
|
mm_start = datetime(2025, 4, 5)
|
|
date_end = datetime(2026, 3, 8)
|
|
assert int(analyze.load_dataframe(
|
|
table_name='PowerballDraw', start_date=pb_start, end_date=date_end).count()['draw_date']) == 1324
|
|
assert int(analyze.load_dataframe(
|
|
table_name='MegaMillionsDraw', start_date=mm_start, end_date=date_end).count()['draw_date']) == 96
|
|
with pytest.raises(ValueError):
|
|
analyze.load_dataframe(table_name='SomNonExistentTableName')
|
|
|
|
|
|
def test_least_and_most_common_number() -> None:
|
|
pb_start = datetime(2015, 10, 4)
|
|
mm_start = datetime(2025, 4, 5)
|
|
date_end = datetime(2026, 3, 8)
|
|
|
|
pb_df = analyze.load_dataframe(
|
|
table_name='PowerballDraw', start_date=pb_start, end_date=date_end)
|
|
mm_df = analyze.load_dataframe(
|
|
table_name='MegaMillionsDraw', start_date=mm_start, end_date=date_end)
|
|
|
|
assert analyze.get_most_common_number(pb_df, top=5) == [61, 21, 28, 23, 33]
|
|
assert analyze.get_least_common_number(pb_df, bottom=5) == [13, 49, 46, 26, 34]
|
|
assert analyze.get_most_common_number(mm_df, top=5) == [42, 40, 18, 10, 49]
|
|
assert analyze.get_least_common_number(mm_df, bottom=5) == [35, 51, 3, 1, 20]
|
|
|
|
assert analyze.get_most_common_number(pb_df, columns=['powerball'], top=1) == [4]
|
|
assert analyze.get_least_common_number(pb_df, columns=['powerball'], bottom=1) == [16]
|
|
assert analyze.get_most_common_number(mm_df, columns=['mega_ball'], top=1) == [1]
|
|
assert analyze.get_least_common_number(mm_df, columns=['mega_ball'], bottom=1) == [3]
|