May use notebooks to generate sets of "accepted data" for tests.
import os
import sys
import numpy as np
home_path = os.path.abspath(os.path.join('..'))
if home_path not in sys.path:
sys.path.append(home_path)
tests_path = os.path.abspath(os.path.join('..', 'tests'))
if tests_path not in sys.path:
sys.path.append(tests_path)
from nmrsim.qm import hamiltonian_dense, secondorder_dense
from qm_arguments import spin2, rioux
rioux()
hamiltonian_dense(*rioux())
secondorder_dense(*rioux())
hamiltonian_dense(*spin2())
from nmrsim.qm import _so_dense
Lz, Lproduct = _so_dense(2)
Lz
Lproduct
v, J = spin2()
H = np.tensordot(v, Lz, axes=1)
H