/usr/lib/python3/dist-packages/mdp/test/test_FDANode.py is in python3-mdp 3.5-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | from __future__ import division
from past.utils import old_div
import py.test
from ._tools import *
def test_FDANode():
mean1 = [0., 2.]
mean2 = [0., -2.]
std_ = numx.array([1., 0.2])
npoints = 50000
rot = 45
# input data: two distinct gaussians rotated by 45 deg
def distr(size):
return normal(0, 1., size=(size)) * std_
x1 = distr((npoints,2)) + mean1
utils.rotate(x1, rot, units='degrees')
x2 = distr((npoints,2)) + mean2
utils.rotate(x2, rot, units='degrees')
x = numx.concatenate((x1, x2), axis=0)
# labels
cl1 = numx.ones((x1.shape[0],), dtype='d')
cl2 = 2.*numx.ones((x2.shape[0],), dtype='d')
classes = numx.concatenate((cl1, cl2))
# shuffle the data
perm_idx = numx_rand.permutation(classes.shape[0])
x = numx.take(x, perm_idx, axis=0)
classes = numx.take(classes, perm_idx)
flow = mdp.Flow([mdp.nodes.FDANode()])
py.test.raises(mdp.TrainingException,
flow[0].train, x, numx.ones((2,)))
flow.train([[(x, classes)]])
fda_node = flow[0]
assert fda_node.tlens[1] == npoints
assert fda_node.tlens[2] == npoints
m1 = numx.array([mean1])
m2 = numx.array([mean2])
utils.rotate(m1, rot, units='degrees')
utils.rotate(m2, rot, units='degrees')
assert_array_almost_equal(fda_node.means[1], m1, 2)
assert_array_almost_equal(fda_node.means[2], m2, 2)
y = flow.execute(x)
assert_array_almost_equal(mean(y, axis=0), [0., 0.], decimal-2)
assert_array_almost_equal(std(y, axis=0), [1., 1.], decimal-2)
assert_almost_equal(mult(y[:,0], y[:,1].T), 0., decimal-2)
v1 = old_div(fda_node.v[:,0],fda_node.v[0,0])
assert_array_almost_equal(v1, [1., -1.], 2)
v1 = old_div(fda_node.v[:,1],fda_node.v[0,1])
assert_array_almost_equal(v1, [1., 1.], 2)
|