Completed
Branch master (87644b)
by Christiaan
01:33
created

FindArchitectureSuite.setUp()   A

Complexity

Conditions 1

Size

Total Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
c 1
b 0
f 0
dl 0
loc 2
rs 10
1
from mcfly import find_architecture
2
import numpy as np
3
from nose.tools import assert_equal, assert_equals, assert_almost_equal
4
from keras.utils.np_utils import to_categorical
5
6
import unittest
7
8
9
class FindArchitectureSuite(unittest.TestCase):
10
11
    """Basic test cases."""
12
13
    def test_kNN_accuracy_1(self):
14
        """
15
        The accuracy for this single-point dataset should be 1.
16
        """
17
        X_train = np.array([[[1]], [[0]]])
18
        y_train = np.array([[1, 0], [0, 1]])
19
        X_val = np.array([[[0.9]]])
20
        y_val = np.array([[1, 0]])
21
22
        acc = find_architecture.kNN_accuracy(
23
            X_train, y_train, X_val, y_val, k=1)
24
        assert_almost_equal(acc, 1.0)
25
26
    def test_kNN_accuracy_0(self):
27
        """
28
        The accuracy for this single-point dataset should be 0.
29
        """
30
        X_train = np.array([[[1]], [[0]]])
31
        y_train = np.array([[1, 0], [0, 1]])
32
        X_val = np.array([[[0.9]]])
33
        y_val = np.array([[0, 1]])
34
35
        acc = find_architecture.kNN_accuracy(
36
            X_train, y_train, X_val, y_val, k=1)
37
        assert_almost_equal(acc, 0)
38
39
    def test_find_best_architecture(self):
40
        num_timesteps = 100
41
        num_channels = 2
42
        num_samples_train = 5
43
        num_samples_val = 3
44
        X_train = np.random.rand(
45
            num_samples_train,
46
            num_timesteps,
47
            num_channels)
48
        y_train = to_categorical(np.array([0, 0, 1, 1, 1]))
49
        X_val = np.random.rand(num_samples_val, num_timesteps, num_channels)
50
        y_val = to_categorical(np.array([0, 1, 1]))
51
        best_model, best_params, best_model_type, knn_acc = find_architecture.find_best_architecture(
52
            X_train, y_train, X_val, y_val, verbose=False,
53
            number_of_models=1, nr_epochs=1)
54
        assert hasattr(best_model, 'fit')
55
        self.assertIsNotNone(best_params)
56
        self.assertIsNotNone(best_model_type)
57
        assert knn_acc >= 0 and knn_acc <= 1
58
59
    def setUp(self):
60
        np.random.seed(1234)
61
62
if __name__ == '__main__':
63
    unittest.main()
64