def test_repr_latex(self): hamiltonian = mm.Hamiltonian() latex = hamiltonian._repr_latex_() assert latex[0] == latex[-1] == '$' assert latex.count('$') == 2 assert r'\mathcal{H}' in latex assert latex[-2] == '0' for term in self.terms: hamiltonian._add(term) latex = hamiltonian._repr_latex_() assert latex[0] == latex[-1] == '$' assert latex.count('$') == 2 assert r'\mathcal{H}=' in latex assert 'A' in latex assert r'\mathbf{m}' in latex assert r'\mathbf{H}' in latex assert r'\mathbf{u}' in latex assert 'K' in latex assert r'\mathbf{H}_\text{d}' in latex assert '\cdot' in latex assert r'\frac{1}{2}' in latex assert r'M_\text{s}' in latex assert latex.count('-') == 5 assert latex.count('+') == 3 assert latex.count('=') == 1 assert latex.count(r'\nabla') == 2 assert latex.count(r'\times') == 1
def test_iadd(self): hamiltonian = mm.Hamiltonian() for term in self.terms: hamiltonian += term assert isinstance(hamiltonian, mm.Hamiltonian) assert isinstance(hamiltonian.terms, list) assert hamiltonian.terms[-1] == term assert hamiltonian.terms[-1].name == term.name assert len(hamiltonian.terms) == 6
def test_getattr(self): hamiltonian = mm.Hamiltonian() for term in self.terms: hamiltonian += term assert isinstance(hamiltonian.exchange, mm.Exchange) assert hamiltonian.exchange.A == 1e-12 assert isinstance(hamiltonian.zeeman, mm.Zeeman) assert hamiltonian.zeeman.H == (0, 0, 1.2e6) assert isinstance(hamiltonian.uniaxialanisotropy, mm.UniaxialAnisotropy) assert hamiltonian.uniaxialanisotropy.K1 == 1e4 assert hamiltonian.uniaxialanisotropy.u == (0, 1, 0) assert isinstance(hamiltonian.demag, mm.Demag) assert isinstance(hamiltonian.cubicanisotropy, mm.CubicAnisotropy) assert hamiltonian.cubicanisotropy.K1 == 5e6 assert hamiltonian.cubicanisotropy.u1 == (0, 0, 1) assert hamiltonian.cubicanisotropy.u2 == (0, 1, 0)
def test_add_hamiltonian(self): term_sum = self.exchange + self.zeeman hamiltonian = mm.Hamiltonian() hamiltonian += term_sum assert len(hamiltonian.terms) == 2
def test_script(self): hamiltonian = mm.Hamiltonian() with pytest.raises(NotImplementedError): script = hamiltonian._script
def test_add_exception(self): hamiltonian = mm.Hamiltonian() for term in self.invalid_terms: with pytest.raises(TypeError): hamiltonian += term