

def testFunctionality(self):
    ' generate VAR signals, and apply the api to them\n            do this for every backend '
    np.random.seed(3141592)
    b01 = np.zeros((3, 6))
    b02 = np.zeros((3, 6))
    b01[1:3, 2:6] = [[0.4, (- 0.2), 0.3, 0.0], [(- 0.7), 0.0, 0.9, 0.0]]
    b02[0:3, 2:6] = [[0.4, 0.0, 0.0, 0.0], [0.4, 0.0, 0.4, 0.0], [0.0, 0.0, 0.4, 0.0]]
    m0 = b01.shape[0]
    cl = np.array([0, 1, 0, 1, 0, 0, 1, 1, 1, 0])
    l = 200
    t = len(cl)
    noisefunc = (lambda : ((np.random.normal(size=(1, m0)) ** 3) / 1000.0))
    var = VAR(2)
    var.coef = b01
    sources1 = var.simulate([l, sum((backend_gen == 0))], noisefunc)
    var.coef = b02
    sources2 = var.simulate([l, sum((cl == 1))], noisefunc)
    var.fit(sources1)
    var.fit(sources2)
    sources = np.zeros((t, m0, l))
    sources[(cl == 0), :, :] = sources1
    sources[(cl == 1), :, :] = sources2
    mix = [[0.5, 1.0, 0.5, 0.2, 0.0, 0.0, 0.0], [0.0, 0.2, 0.5, 1.0, 0.5, 0.2, 0.0], [0.0, 0.0, 0.0, 0.2, 0.5, 1.0, 0.5]]
    data = datatools.dot_special(np.transpose(mix), sources)
    data += (np.random.randn(*data.shape) * 0.001)
    for (backend_name, backend_gen) in scot.backend.items():
        np.random.seed(3141592)
        api = scot.Workspace({
            'model_order': 2,
        }, reducedim=3, backend=backend_gen())
        api.set_data(data)
        api.do_ica()
        self.assertEqual(api.mixing_.shape, (3, 7))
        self.assertEqual(api.unmixing_.shape, (7, 3))
        api.do_mvarica()
        self.assertEqual(api.get_connectivity('S').shape, (3, 3, 512))
        self.assertFalse(np.any(np.isnan(api.activations_)))
        self.assertFalse(np.any(np.isinf(api.activations_)))
        api.set_data(data)
        api.fit_var()
        self.assertEqual(api.get_connectivity('S').shape, (3, 3, 512))
        self.assertEqual(api.get_tf_connectivity('S', 100, 50).shape, (3, 3, 512, ((l - 100) // 50)))
        tfc1 = api.get_tf_connectivity('PDC', 100, 5, baseline=None)
        tfc2 = api.get_tf_connectivity('PDC', 100, 5, baseline=[110, (- 10)])
        tfc3 = api.get_tf_connectivity('PDC', 100, 5, baseline=[0, 0])
        tfc4 = (tfc1 - tfc1[:, :, :, [0]])
        tfc5 = api.get_tf_connectivity('PDC', 100, 5, baseline=[(- np.inf), np.inf])
        tfc6 = (tfc1 - np.mean(tfc1, axis=3, keepdims=True))
        self.assertTrue(np.allclose(tfc1, tfc2))
        self.assertTrue(np.allclose(tfc3, tfc4))
        self.assertTrue(np.allclose(tfc5, tfc6, rtol=1e-05, atol=1e-06))
        api.set_data(data, cl)
        self.assertFalse(np.any(np.isnan(api.data_)))
        self.assertFalse(np.any(np.isinf(api.data_)))
        api.do_cspvarica()
        self.assertEqual(api.get_connectivity('S').shape, (3, 3, 512))
        self.assertFalse(np.any(np.isnan(api.activations_)))
        self.assertFalse(np.any(np.isinf(api.activations_)))
        for c in np.unique(cl):
            api.set_used_labels([c])
            api.fit_var()
            fc = api.get_connectivity('S')
            self.assertEqual(fc.shape, (3, 3, 512))
            tfc = api.get_tf_connectivity('S', 100, 50)
            self.assertEqual(tfc.shape, (3, 3, 512, ((l - 100) // 50)))
        api.set_data(data)
        api.remove_sources([0, 2])
        api.fit_var()
        self.assertEqual(api.get_connectivity('S').shape, (1, 1, 512))
        self.assertEqual(api.get_tf_connectivity('S', 100, 50).shape, (1, 1, 512, ((l - 100) // 50)))
        try:
            api.optimize_var()
        except NotImplementedError:
            pass
        api.fit_var()
        self.assertEqual(api.get_connectivity('S').shape, (1, 1, 512))
        self.assertEqual(api.get_tf_connectivity('S', 100, 50).shape, (1, 1, 512, ((l - 100) // 50)))

dataset/ETHPy150Open scot-dev/scot/scot/tests/test_ooapi.py TestMVARICA.testFunctionality/VarMisuse@232/282 `cl`->`backend_gen`