def test_dense_two_index(): from horton.matrix import DenseLinalgFactory, DenseTwoIndex lf = DenseLinalgFactory() c = Cache() op1, new = c.load("egg", alloc=(lf.create_two_index, 10)) assert new assert isinstance(op1, DenseTwoIndex) assert op1.nbasis == 10 op2 = c.load("egg") assert op1 is op2 op3, new = c.load("egg", alloc=(lf.create_two_index, 10)) assert not new assert op1 is op3 # things that should not work with assert_raises(TypeError): op4, new = c.load("egg", alloc=(lf.create_two_index, 5)) with assert_raises(TypeError): op4, new = c.load("egg", alloc=5) # after clearing op1.set_element(1, 2, 5.2) c.clear() assert op1._array[1, 2] == 0.0 with assert_raises(KeyError): op4 = c.load("egg") op4, new = c.load("egg", alloc=(lf.create_two_index, 10)) assert new assert op1 is op4 op5 = c.load("egg") assert op1 is op5 # default_nbasis lf.default_nbasis = 5 with assert_raises(TypeError): c.load("egg", alloc=lf.create_two_index) c.clear() op6, new = c.load("egg", alloc=lf.create_two_index) assert new assert not op5 is op6 assert op6.nbasis == 5 # the new method of the two-index object op7, new = c.load("bork", alloc=op6.new) assert new assert not op5 is op7 assert op7.nbasis == 5
def test_dense_two_index(): from horton.matrix import DenseLinalgFactory, DenseTwoIndex lf = DenseLinalgFactory() c = Cache() op1, new = c.load('egg', alloc=(lf.create_two_index, 10)) assert new assert isinstance(op1, DenseTwoIndex) assert op1.nbasis == 10 op2 = c.load('egg') assert op1 is op2 op3, new = c.load('egg', alloc=(lf.create_two_index, 10)) assert not new assert op1 is op3 # things that should not work with assert_raises(TypeError): op4, new = c.load('egg', alloc=(lf.create_two_index, 5)) with assert_raises(TypeError): op4, new = c.load('egg', alloc=5) # after clearing op1.set_element(1, 2, 5.2) c.clear() assert op1._array[1, 2] == 0.0 with assert_raises(KeyError): op4 = c.load('egg') op4, new = c.load('egg', alloc=(lf.create_two_index, 10)) assert new assert op1 is op4 op5 = c.load('egg') assert op1 is op5 # default_nbasis lf.default_nbasis = 5 with assert_raises(TypeError): c.load('egg', alloc=lf.create_two_index) c.clear() op6, new = c.load('egg', alloc=lf.create_two_index) assert new assert not op5 is op6 assert op6.nbasis == 5 # the new method of the two-index object op7, new = c.load('bork', alloc=op6.new) assert new assert not op5 is op7 assert op7.nbasis == 5
def test_dense_expansion(): from horton.matrix import DenseLinalgFactory, DenseExpansion lf = DenseLinalgFactory() c = Cache() exp1, new = c.load("egg", alloc=(lf.create_expansion, 10, 9)) assert new assert isinstance(exp1, DenseExpansion) assert exp1.nbasis == 10 assert exp1.nfn == 9 exp2 = c.load("egg") assert exp1 is exp2 exp3, new = c.load("egg", alloc=(lf.create_expansion, 10, 9)) assert not new assert exp1 is exp3 # things that should not work with assert_raises(TypeError): exp4, new = c.load("egg", alloc=(lf.create_expansion, 5)) with assert_raises(TypeError): exp4, new = c.load("egg", alloc=(lf.create_expansion, 10, 5)) with assert_raises(TypeError): exp4, new = c.load("egg", alloc=5) # after clearing exp1.coeffs[1, 2] = 5.2 c.clear() assert exp1.coeffs[1, 2] == 0.0 with assert_raises(KeyError): exp4 = c.load("egg") exp4, new = c.load("egg", alloc=(lf.create_expansion, 10, 9)) assert new assert exp1 is exp4 exp5 = c.load("egg") assert exp1 is exp5 # default_nbasis lf.default_nbasis = 5 with assert_raises(TypeError): c.load("egg", alloc=lf.create_expansion) c.clear() exp6, new = c.load("egg", alloc=lf.create_expansion) assert new assert not exp5 is exp6 assert exp6.nbasis == 5 assert exp6.nfn == 5
def test_dense_expansion(): from horton.matrix import DenseLinalgFactory, DenseExpansion lf = DenseLinalgFactory() c = Cache() exp1, new = c.load('egg', alloc=(lf.create_expansion, 10, 9)) assert new assert isinstance(exp1, DenseExpansion) assert exp1.nbasis == 10 assert exp1.nfn == 9 exp2 = c.load('egg') assert exp1 is exp2 exp3, new = c.load('egg', alloc=(lf.create_expansion, 10, 9)) assert not new assert exp1 is exp3 # things that should not work with assert_raises(TypeError): exp4, new = c.load('egg', alloc=(lf.create_expansion, 5)) with assert_raises(TypeError): exp4, new = c.load('egg', alloc=(lf.create_expansion, 10, 5)) with assert_raises(TypeError): exp4, new = c.load('egg', alloc=5) # after clearing exp1.coeffs[1, 2] = 5.2 c.clear() assert exp1.coeffs[1, 2] == 0.0 with assert_raises(KeyError): exp4 = c.load('egg') exp4, new = c.load('egg', alloc=(lf.create_expansion, 10, 9)) assert new assert exp1 is exp4 exp5 = c.load('egg') assert exp1 is exp5 # default_nbasis lf.default_nbasis = 5 with assert_raises(TypeError): c.load('egg', alloc=lf.create_expansion) c.clear() exp6, new = c.load('egg', alloc=lf.create_expansion) assert new assert not exp5 is exp6 assert exp6.nbasis == 5 assert exp6.nfn == 5