def test_take(self): s = numpy.ones(6, dtype=bool) self.assertEqual(sparse.take(self.data, [s]).tolist(), [((4,),10), ((4,),20), ((3,),1), ((2,),30), ((1,),40), ((2,),50), ((3,),-1), ((0,),0), ((0,),60)]) s[1::2] = False self.assertEqual(sparse.take(self.data, [s]).tolist(), [((2,),10), ((2,),20), ((1,),30), ((1,),50), ((0,),0), ((0,),60)])
def test_take(self): s = numpy.ones((4, 5), dtype=bool) self.assertEqual( sparse.take(self.data, [s]).tolist(), [((14, ), 10), ((19, ), 20), ((13, ), 1), ((7, ), 30), ((1, ), 40), ((7, ), 50), ((13, ), -1), ((15, ), 0), ((10, ), 60)]) s.flat[1::2] = False self.assertEqual( sparse.take(self.data, [s]).tolist(), [((7, ), 10), ((5, ), 60)]) s = numpy.ones(4, dtype=bool) t = numpy.ones(5, dtype=bool) self.assertEqual( sparse.take(self.data, [s, t]).tolist(), [((2, 4), 10), ((3, 4), 20), ((2, 3), 1), ((1, 2), 30), ((0, 1), 40), ((1, 2), 50), ((2, 3), -1), ((3, 0), 0), ((2, 0), 60)]) s.flat[1::2] = False self.assertEqual( sparse.take(self.data, [s, t]).tolist(), [((1, 4), 10), ((1, 3), 1), ((0, 1), 40), ((1, 3), -1), ((1, 0), 60)]) t.flat[1::2] = False self.assertEqual( sparse.take(self.data, [s, t]).tolist(), [((1, 2), 10), ((1, 0), 60)])
def assert_resnorm(self, lhs): res = self.residual.eval(arguments=dict(dofs=lhs))[numpy.isnan(self.cons)] if self.single \ else numpy.concatenate([sparse.toarray(sparse.take(r, [numpy.isnan(self.cons[d])]) if d in self.cons else r) for d, r in zip(self.dofs, sample.eval_integrals_sparse(*self.residual, **lhs))]) resnorm = numpy.linalg.norm(res) self.assertLess(resnorm, self.tol)