GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Passed
Push — master ( de7c60...c9fd59 )
by Keertana
02:19
created

functions_and_tests.test_baseline.test_sum_mean()   A

Complexity

Conditions 1

Size

Total Lines 17
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 12
nop 0
dl 0
loc 17
rs 9.8
c 0
b 0
f 0
1
"""This module tests the baseline function."""
2
# import functions and modules
3
import numpy as np
4
import file_read
5
import baseline
6
7
#Test functions:
8
def test_split():
9
    """
10
    This function tests the split function.
11
    The output of the function has to be np.array.
12
    Split function splits the length of input vector
13
    in two. So, len of output should equal to half len
14
    of input.
15
    """
16
    dict_1 = file_read.read_file('../../data/10mM_2,7-AQDS_1M_KOH_25mVs_0.5step_2.txt')
17
    data = file_read.data_frame(dict_1, 1)
18
    vec_x = data.Potential
19
    a_val, b_val = baseline.split(vec_x)
20
    assert isinstance(a_val == np.ndarray), "The output type is incorrect."
21
    assert isinstance(b_val == np.ndarray), "The output type is incorrect."
22
    #assert len(a)  int(len(x)/2), "The output should be "
23
    (np.testing.assert_almost_equal(len(a_val), (len(vec_x)/2), decimal=0),
24
     "Output length is incorrect")
25
    (np.testing.assert_almost_equal(len(b_val), (len(vec_x)/2), decimal=0),
26
     "Output length is incorrect")
27
    return "Test of split function passed!"
28
29
30
def test_critical_idx():
31
    """
32
    Critical_idx returns idx of the index of the intercepts of different moving average curves.
33
    Test the output if it is a single index.
34
    Test if the output is integer.
35
    Test if the index exist in original input.
36
    """
37
    dict_1 = file_read.read_file('../../data/10mM_2,7-AQDS_1M_KOH_25mVs_0.5step_2.txt')
38
    data = file_read.data_frame(dict_1, 1)
39
    col_x1, col_x2 = baseline.split(data.Potential)
40
    col_y1, col_y2 = baseline.split(data.Current)
41
    idx = baseline.critical_idx(col_x1, col_y1)
42
    assert isinstance(idx == np.int64), ("Output should be integer, but"
43
                                         "Function is returning {}".format(type(idx)))
44
    assert idx.shape == (), "This function should return single idx"
45
    assert 0 < idx < len(col_x1), "Output index is out of order"
46
    return "Test of critical_idx function passed!"
47
48
49
def test_sum_mean():
50
    """
51
    Target function returns the mean and sum of the given vector.
52
    Expect output to be a list, with length 2.
53
    Can also test if the mean is correctly calculated.
54
    """
55
    dict_1 = file_read.read_file('../../data/10mM_2,7-AQDS_1M_KOH_25mVs_0.5step_2.txt')
56
    data = file_read.data_frame(dict_1, 1)
57
    col_x1, col_x2 = baseline.split(data.Potential)
58
    a_val = baseline.sum_mean(col_x1)
59
    assert isinstance(a_val == list), ("Output should be list object,"
60
                                       " but fuction is returning{}".format(type(a_val)))
61
    assert len(a_val) == 2, ("length of output should be 2,"
62
                             "but, function is returning a list with length{}".format(len(a_val)))
63
    (np.testing.assert_almost_equal(a_val[1], np.mean(col_x1), decimal=3),
64
     "Mean is calculated incorrectly")
65
    return "Test of sum_mean function passed!"
66
67
def test_multiplica():
68
    """
69
    Target function returns the sum of the multilica of two given vector.
70
    Expect output as np.float object.
71
    """
72
    dict_1 = file_read.read_file('../../data/10mM_2,7-AQDS_1M_KOH_25mVs_0.5step_2.txt')
73
    data = file_read.data_frame(dict_1, 1)
74
    col_x1, col_x2 = baseline.split(data.Potential)
75
    col_y1, col_y2 = baseline.split(data.Current)
76
    a_val = baseline.multiplica(col_x1, col_y1)
77
    assert isinstance(a_val == np.float64), ("Output should be float object,"
78
                                             " but fuction is returning{}".format(type(a_val)))
79
    b_val = np.multiply(col_x1, col_y1).sum()
80
    (np.testing.assert_almost_equal(a_val, b_val, decimal=3),
81
     "Calculation is incorrect")
82
    return "Test Passed for multiplica function!"
83
84
85
def test_linear_coeff():
86
    """
87
    Target function returns the inclination coeffecient
88
    and y axis interception coeffecient m and b.
89
    T
90
    """
91
    x_arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
92
    y_arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
93
    m_val, b_val = baseline.linear_coeff(x_arr, y_arr)
94
    assert m_val == 1, "Inclination coeffecient is incorrect"
95
    assert b_val == 0, "Interception is incorrect"
96
    return "Test passed for linear_coeff function!"
97
98
def test_y_fitted_line():
99
    """
100
    Target function returns the fitted baseline y.
101
    Should exam if the output is correct shape,
102
    correct type, and correct value.
103
    """
104
    x_arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
105
    m_val = 1
106
    b_val = 0
107
    y_val = baseline.y_fitted_line(m_val, b_val, x_arr)
108
    if len(y_val) != len(x_arr):
109
        raise ValueError("Output must have same length as input x,"
110
                         "but have lenth {}".format(len(y_val)))
111
    assert isinstance(y_val == list), "Output should be list object"
112
    if np.all(y_val != x_arr):
113
        raise ValueError("Fitted line y values are calculated incorrectly")
114
    return "Test passed for y_fitted_line function!"
115
116
def test_linear_background():
117
    """
118
    Target function is wrapping function which returns
119
    linear fitted line.Should exam if the output is
120
    correct shape, correct type, and correct value.
121
    """
122
    dict_1 = file_read.read_file('../../data/10mM_2,7-AQDS_1M_KOH_25mVs_0.5step_2.txt')
123
    data = file_read.data_frame(dict_1, 1)
124
    col_x1, col_x2 = baseline.split(data.Potential)
125
    col_y1, col_y2 = baseline.split(data.Current)
126
    y_fit = baseline.linear_background(col_x1, col_y1)
127
    assert isinstance(y_fit == list), "Output should be list object"
128
    if len(y_fit) != len(col_x1):
129
        raise ValueError("Output must have same length as input x,"
130
                         "but have lenth {}".format(len(y_fit)))
131
    if len(y_fit) != len(col_y1):
132
        raise ValueError("Output must have same length as input y,"
133
                         "but have lenth {}".format(len(y_fit)))
134
    return "Test passed for linear_background function!"
135