Add artifact.1/tests/test_core.py
This commit is contained in:
parent
da20aa3715
commit
42ebafcad4
1 changed files with 41 additions and 0 deletions
41
artifact.1/tests/test_core.py
Normal file
41
artifact.1/tests/test_core.py
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
import pytest
|
||||
import pandas as pd
|
||||
import os
|
||||
from pathlib import Path
|
||||
import matplotlib.figure as figure
|
||||
|
||||
from artifact_1.core import generate_signal_plot
|
||||
|
||||
|
||||
def _create_test_csv(tmp_path: Path) -> Path:
|
||||
data = [
|
||||
{"timestamp": "2024-01-01T00:00:00Z", "frequency_MHz": 87.5, "signal_dB": -40.0, "noise_dB": -90.0, "lat": 48.5, "lon": 13.5},
|
||||
{"timestamp": "2024-01-01T00:00:01Z", "frequency_MHz": 88.0, "signal_dB": -35.0, "noise_dB": -85.0, "lat": 48.5, "lon": 13.5},
|
||||
{"timestamp": "2024-01-01T00:00:02Z", "frequency_MHz": 88.5, "signal_dB": -30.0, "noise_dB": -80.0, "lat": 48.5, "lon": 13.5},
|
||||
]
|
||||
df = pd.DataFrame(data)
|
||||
csv_path = tmp_path / "test_sample.csv"
|
||||
df.to_csv(csv_path, index=False)
|
||||
return csv_path
|
||||
|
||||
|
||||
def test_generate_signal_plot_valid(tmp_path):
|
||||
csv_path = _create_test_csv(tmp_path)
|
||||
fig = generate_signal_plot(str(csv_path))
|
||||
assert isinstance(fig, figure.Figure)
|
||||
assert len(fig.axes) > 0, "Figure should contain at least one axis"
|
||||
# Check if axis title or labels contain frequency or signal
|
||||
ax = fig.axes[0]
|
||||
assert any('Frequency' in (label or '') for label in [ax.get_xlabel(), ax.get_ylabel(), ax.get_title()]), 'Labels should mention frequency or signal'
|
||||
|
||||
|
||||
def test_generate_signal_plot_invalid_path():
|
||||
with pytest.raises((FileNotFoundError, pd.errors.EmptyDataError, ValueError)):
|
||||
generate_signal_plot('nonexistent.csv')
|
||||
|
||||
|
||||
def test_generate_signal_plot_empty_file(tmp_path):
|
||||
empty_csv = tmp_path / 'empty.csv'
|
||||
empty_csv.write_text('')
|
||||
with pytest.raises((pd.errors.EmptyDataError, ValueError)):
|
||||
generate_signal_plot(str(empty_csv))
|
||||
Loading…
Reference in a new issue