4. Factor out the unit-norm basis (and operator symmetry) tests once
all of the algebras pass.
-5. Override inner_product(), _max_test_case_size(), et cetera in
- DirectSumEJA.
+5. Override random_instance(), one(), et cetera in DirectSumEJA.
6. Switch to QQ in *all* algebras for _charpoly_coefficients().
This only works when we know that the basis can be rationalized...
This may require supporting "basis" as a list of basis vectors
(as opposed to superalgebra elements) in the subalgebra constructor.
+
+8. Implement random_instance() for general algebras as random_eja().
+ Copy/paste the "general" construction into the other classes that
+ can use it. The general construction can be something like "call
+ random_instance() on something that inherits me and return the
+ result."