Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[add:ci] Add package tests and Travis CI configuration #56

Merged
merged 16 commits into from
Jan 5, 2020
Prev Previous commit
Next Next commit
Start DTWKNN tests
  • Loading branch information
eonu committed Jan 4, 2020
commit 15c30e36c990214b4dfa8a927dcb3eaf57033d89
87 changes: 87 additions & 0 deletions lib/tests/lib/classifiers/dtwknn/test_dtwknn.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
import pytest
import warnings
import numpy as np
from copy import deepcopy
with warnings.catch_warnings():
warnings.filterwarnings('ignore', category=DeprecationWarning)
from sequentia.classifiers import DTWKNN
from ....support import assert_equal, assert_not_equal

# Set seed for reproducible randomness
seed = 0
np.random.seed(seed)
rng = np.random.RandomState(seed)

# Create some sample data
X = [rng.random((10 * i, 3)) for i in range(1, 7)]
y = ['c1', 'c1', 'c0', 'c1', 'c1', 'c0']
x = X[0]

clfs = [
DTWKNN(k=1, radius=1),
DTWKNN(k=2, radius=5),
DTWKNN(k=3, radius=10)
]

# ============ #
# DTWKNN.fit() #
# ============ #

def test_fit():
""""""
clf = clfs[0]
clf.fit(X, y)
assert clf._X == X
assert clf._y == y

def test_predict_without_fit():
""""""
pass

def test_predict_single_k1_r1_verbose(capsys):
"""Verbosely predict a single observation sequence (k=1, r=1)"""
clf = clfs[0]
clf.fit(X, y)
prediction = clf.predict(x, verbose=True)
assert 'Calculating distances' in capsys.readouterr().err
assert prediction == 'c1'

def test_predict_single_k1_r1_no_verbose(capsys):
"""Silently predict a single observation sequence (k=1, r=1)"""
clf = clfs[0]
clf.fit(X, y)
prediction = clf.predict(x, verbose=False)
assert 'Calculating distances' not in capsys.readouterr().err
assert prediction == 'c1'

def test_predict_single_k2_r5_verbose(capsys):
"""Verbosely predict a single observation sequence (k=2, r=5)"""
clf = clfs[1]
clf.fit(X, y)
prediction = clf.predict(x, verbose=True)
assert 'Calculating distances' in capsys.readouterr().err
assert prediction == 'c1'

def test_predict_single_k2_r5_no_verbose(capsys):
"""Silently predict a single observation sequence (k=2, r=5)"""
clf = clfs[1]
clf.fit(X, y)
prediction = clf.predict(x, verbose=False)
assert 'Calculating distances' not in capsys.readouterr().err
assert prediction == 'c1'

def test_predict_single_k3_r10_verbose(capsys):
"""Verbosely predict a single observation sequence (k=3, r=10)"""
clf = clfs[2]
clf.fit(X, y)
prediction = clf.predict(x, verbose=True)
assert 'Calculating distances' in capsys.readouterr().err
assert prediction == 'c1'

def test_predict_single_k3_r10_no_verbose(capsys):
"""Silently predict a single observation sequence (k=3, r=10)"""
clf = clfs[2]
clf.fit(X, y)
prediction = clf.predict(x, verbose=False)
assert 'Calculating distances' not in capsys.readouterr().err
assert prediction == 'c1'
1 change: 0 additions & 1 deletion lib/tests/lib/classifiers/hmm/test_hmm_classifier.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
import warnings
import numpy as np
from copy import deepcopy
import pomegranate as pg
from sequentia.classifiers import HMM, HMMClassifier
from ....support import assert_equal, assert_not_equal

Expand Down