# -*- coding: utf-8 -*-

from pmdarima.metrics import smape
import numpy as np
import pytest


@pytest.mark.parametrize(
    'actual,forecasted,expected', [
        pytest.param([0.07533, 0.07533, 0.07533, 0.07533,
                      0.07533, 0.07533, 0.0672, 0.0672],
                     [0.102, 0.107, 0.047, 0.1,
                      0.032, 0.047, 0.108, 0.089], 42.60306631890196),

        # when y_true == y_pred, we get 0 err
        pytest.param([0.07533, 0.07533, 0.07533, 0.07533,
                      0.07533, 0.07533, 0.0672, 0.0672],
                     [0.07533, 0.07533, 0.07533, 0.07533,
                      0.07533, 0.07533, 0.0672, 0.0672], 0),
    ]
)
def test_smape(actual, forecasted, expected):
    err = smape(actual, forecasted)
    assert np.allclose(expected, err)
