def test_combined_node(self): ds = datasets['3dsmall'] axis2nodes = dict(h=(mean_feature, mean_feature), v=(mean_sample, mean_sample)) for i, axis in enumerate('vh'): nodes = axis2nodes[axis] combined = CombinedNode([n() for n in nodes], axis, False) assert_true(combined(ds).shape[i] == 2) assert_true(combined(ds).shape[1 - i] == ds.shape[1 - i])
def test_compound_node(self): data = np.asarray([[1, 2, 3, 4]], dtype=np.float_).T ds = AttrDataset(data, sa=dict(targets=[0, 0, 1, 1])) add = lambda x: lambda y: x + y mul = lambda x: lambda y: x * y add2 = FxNode(add(2)) mul3 = FxNode(mul(3)) assert_array_equal(add2(ds).samples, data + 2) add2mul3 = ChainNode([add2, mul3]) assert_array_equal(add2mul3(ds), (data + 2) * 3) add2_mul3v = CombinedNode([add2, mul3], 'v') add2_mul3h = CombinedNode([add2, mul3], 'h') assert_array_equal( add2_mul3v(ds).samples, np.vstack((data + 2, data * 3))) assert_array_equal( add2_mul3h(ds).samples, np.hstack((data + 2, data * 3)))
def _call(self, ds): return CombinedNode._call(self, ds)