def test_dense_vs_sparse(): # XXX: really belongs in irm test cases, but kernels has a nice cluster # enumeration iterator r = rng() n = 5 raw = ma.array( np.random.choice(np.arange(20), size=(n, n)), mask=np.random.choice([False, True], size=(n, n))) dense = [relation_numpy_dataview(raw)] sparse = [sparse_relation_dataview(_tocsr(raw))] domains = [n] relations = [((0, 0), gp)] defn = irm_definition(domains, relations) def score_fn(data): def f(assignments): s = irm_initialize(defn, data, r=r, domain_assignments=assignments) assign = sum(s.score_assignment(i) for i in xrange(len(assignments))) likelihood = s.score_likelihood(r) return assign + likelihood return f product_assignments = tuple(map(list, map(permutation_iter, domains))) dense_posterior = scores_to_probs( np.array(map(score_fn(dense), it.product(*product_assignments)))) sparse_posterior = scores_to_probs( np.array(map(score_fn(sparse), it.product(*product_assignments)))) assert_1d_lists_almost_equals(dense_posterior, sparse_posterior, places=3)
def test_dense_vs_sparse(): # XXX: really belongs in irm test cases, but kernels has a nice cluster # enumeration iterator r = rng() n = 5 raw = ma.array(np.random.choice(np.arange(20), size=(n, n)), mask=np.random.choice([False, True], size=(n, n))) dense = [relation_numpy_dataview(raw)] sparse = [sparse_relation_dataview(_tocsr(raw))] domains = [n] relations = [((0, 0), gp)] defn = irm_definition(domains, relations) def score_fn(data): def f(assignments): s = irm_initialize(defn, data, r=r, domain_assignments=assignments) assign = sum( s.score_assignment(i) for i in xrange(len(assignments))) likelihood = s.score_likelihood(r) return assign + likelihood return f product_assignments = tuple(map(list, map(permutation_iter, domains))) dense_posterior = scores_to_probs( np.array(map(score_fn(dense), it.product(*product_assignments)))) sparse_posterior = scores_to_probs( np.array(map(score_fn(sparse), it.product(*product_assignments)))) assert_1d_lists_almost_equals(dense_posterior, sparse_posterior, places=3)
def test_recarray_numpy_dataview_pickle(): # not masked, int32 y = np.array([(1, 2, 3, 4, 5), (5, 4, 3, 2, 1)], dtype=[('', np.int32)] * 5) view = recarray_numpy_dataview(y) bstr = pickle.dumps(view) view1 = pickle.loads(bstr) assert_list_equal(list(v for v in view), list(v for v in view1)) # not masked, float32 y = np.array([(1, 2, 3, 4, 5), (5, 4, 3, 2, 1)], dtype=[('', np.float32)] * 5) view = recarray_numpy_dataview(y) bstr = pickle.dumps(view) view1 = pickle.loads(bstr) assert_1d_lists_almost_equals( list(v for v in view), list(v for v in view1)) # masked, int32 y = np.array([(1, 2, 3, 4, 5), (5, 4, 3, 2, 1)], dtype=[('', np.int32)] * 5) mask = [(False, False, False, False, True), (True, False, True, True, False)] y = ma.array(y, mask=mask) view = recarray_numpy_dataview(y) bstr = pickle.dumps(view) view1 = pickle.loads(bstr) # XXX(stephentu): masked arrays suck and don't implement equality r = repr(list(v for v in view)) r1 = repr(list(v for v in view1)) assert_equals(r, r1) # masked, float32 y = np.array([(1, 2, 3, 4, 5), (5, 4, 3, 2, 1)], dtype=[('', np.float32)] * 5) mask = [(False, False, False, False, False), (False, False, False, False, False)] y = ma.array(y, mask=mask) view = recarray_numpy_dataview(y) bstr = pickle.dumps(view) view1 = pickle.loads(bstr) assert_1d_lists_almost_equals( list(v.data for v in view), list(v.data for v in view1))
def test_recarray_numpy_dataview_pickle(): # not masked, int32 y = np.array([(1, 2, 3, 4, 5), (5, 4, 3, 2, 1)], dtype=[('', np.int32)] * 5) view = recarray_numpy_dataview(y) bstr = pickle.dumps(view) view1 = pickle.loads(bstr) assert_list_equal(list(v for v in view), list(v for v in view1)) # not masked, float32 y = np.array([(1, 2, 3, 4, 5), (5, 4, 3, 2, 1)], dtype=[('', np.float32)] * 5) view = recarray_numpy_dataview(y) bstr = pickle.dumps(view) view1 = pickle.loads(bstr) assert_1d_lists_almost_equals(list(v for v in view), list(v for v in view1)) # masked, int32 y = np.array([(1, 2, 3, 4, 5), (5, 4, 3, 2, 1)], dtype=[('', np.int32)] * 5) mask = [(False, False, False, False, True), (True, False, True, True, False)] y = ma.array(y, mask=mask) view = recarray_numpy_dataview(y) bstr = pickle.dumps(view) view1 = pickle.loads(bstr) # XXX(stephentu): masked arrays suck and don't implement equality r = repr(list(v for v in view)) r1 = repr(list(v for v in view1)) assert_equals(r, r1) # masked, float32 y = np.array([(1, 2, 3, 4, 5), (5, 4, 3, 2, 1)], dtype=[('', np.float32)] * 5) mask = [(False, False, False, False, False), (False, False, False, False, False)] y = ma.array(y, mask=mask) view = recarray_numpy_dataview(y) bstr = pickle.dumps(view) view1 = pickle.loads(bstr) assert_1d_lists_almost_equals(list(v.data for v in view), list(v.data for v in view1))