Navigator / tests / utility / test_matcher_class.py
test_matcher_class.py
Raw
import pytest
from navigator.utils.matcher.matcher import (
    MixedObs3DailyMatcher,
    GpsNav3DailyMatcher,
    EpochFileMatcher,
)

mixed_obs_filename = [
    "BOGI00POL_R_20210140000_01D_30S_MO.crx.gz",
    "KOUR00GUF_R_20210120000_01D_30S_MO.crx.gz",
    "METG00FIN_R_20210120000_01D_30S_MO.crx.gz",
    "OWMG00NZL_R_20210140000_01D_30S_MO.crx.gz",
    "ROAG00ESP_R_20210100000_01D_30S_MO.crx.gz",
    "SUTH00ZAF_R_20210100000_01D_30S_MO.crx.gz",
]

mixed_nav_filename = [
    "BOGI00POL_R_20210140000_01D_GN.rnx.gz",
    "KOUR00GUF_R_20210120000_01D_GN.rnx.gz",
    "METG00FIN_R_20210120000_01D_GN.rnx.gz",
    "OWMG00NZL_R_20210140000_01D_GN.rnx.gz",
    "ROAG00ESP_R_20210100000_01D_GN.rnx.gz",
    "SUTH00ZAF_R_20210100000_01D_GN.rnx.gz",
]

epoch_filename = [
    "EPOCH_KOUR00GUF_202101122126.pkl",
    "EPOCH_KOUR00GUF_202101122127.pkl",
    "EPOCH_KOUR00GUF_202101122128.pkl",
    "EPOCH_KOUR00GUF_202101122129.pkl",
    "EPOCH_KOUR00GUF_202101122130.pkl",
    "EPOCH_KOUR00GUF_202101122131.pkl",
    "EPOCH_KOUR00GUF_202101122132.pkl",
    "EPOCH_KOUR00GUF_202101122133.pkl",
    "EPOCH_KOUR00GUF_202101122134.pkl",
    "EPOCH_KOUR00GUF_202101122135.pkl",
    "EPOCH_KOUR00GUF_202101122136.pkl",
]


def test_mixed_obs_matcher():
    mixed_obs_matcher = MixedObs3DailyMatcher()

    for filename in mixed_obs_filename:
        assert mixed_obs_matcher.match(filename)

    # Test Metadata for BOGI00POL_R_20210140000_01D_30S_MO.crx.gz
    metadata = mixed_obs_matcher.extract_metadata(mixed_obs_filename[0])

    assert metadata["marker_name"] == "BOGI"
    assert metadata["marker_number"] == "0"
    assert metadata["receiver_number"] == "0"
    assert metadata["country_code"] == "POL"
    assert metadata["data_type"] == "R"
    assert metadata["year"] == "2021"
    assert metadata["day_of_year"] == "014"
    assert metadata["hour"] == "00"
    assert metadata["minute"] == "00"
    assert metadata["file_extension"] == "crx"


def test_gps_nav_matcher():
    gps_nav_matcher = GpsNav3DailyMatcher()

    for filename in mixed_nav_filename:
        assert gps_nav_matcher.match(filename)

    # Test Metadata for BOGI00POL_R_20210140000_01D_GN.rnx.gz
    metadata = gps_nav_matcher.extract_metadata(mixed_nav_filename[0])

    assert metadata["marker_name"] == "BOGI"
    assert metadata["marker_number"] == "0"
    assert metadata["receiver_number"] == "0"
    assert metadata["country_code"] == "POL"
    assert metadata["data_type"] == "R"
    assert metadata["year"] == "2021"
    assert metadata["day_of_year"] == "014"
    assert metadata["hour"] == "00"
    assert metadata["minute"] == "00"
    assert metadata["file_extension"] == "rnx"


def test_epoch_matcher():
    epoch_matcher = EpochFileMatcher()

    for filename in epoch_filename:
        assert epoch_matcher.match(filename)

    # Test Metadata for EPOCH_KOUR00GUF_202101122126.pkl
    metadata = epoch_matcher.extract_metadata(epoch_filename[0])

    assert metadata["station_name"] == "KOUR00GUF"
    assert metadata["year"] == "2021"
    assert metadata["month"] == "01"
    assert metadata["day"] == "12"
    assert metadata["hour"] == "21"
    assert metadata["minute"] == "26"