]> gitweb.michael.orlitzky.com - sage.d.git/commitdiff
eja: check that the multiplication table is square with check=True.
authorMichael Orlitzky <michael@orlitzky.com>
Mon, 9 Nov 2020 12:07:19 +0000 (07:07 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Mon, 9 Nov 2020 12:07:19 +0000 (07:07 -0500)
mjo/eja/eja_algebra.py

index 562797318646cb1dd837691f846fd114b44ec131..3846b83ad6d76674f9f82e5f3a662ea5a2aeea4c 100644 (file)
@@ -61,7 +61,10 @@ class FiniteDimensionalEuclideanJordanAlgebra(CombinatorialFreeModule):
         """
         SETUP::
 
-            sage: from mjo.eja.eja_algebra import (JordanSpinEJA, random_eja)
+            sage: from mjo.eja.eja_algebra import (
+            ....:   FiniteDimensionalEuclideanJordanAlgebra,
+            ....:   JordanSpinEJA,
+            ....:   random_eja)
 
         EXAMPLES:
 
@@ -75,13 +78,20 @@ class FiniteDimensionalEuclideanJordanAlgebra(CombinatorialFreeModule):
 
         TESTS:
 
-        The ``field`` we're given must be real::
+        The ``field`` we're given must be real with ``check=True``::
 
             sage: JordanSpinEJA(2,QQbar)
             Traceback (most recent call last):
             ...
             ValueError: field is not real
 
+        The multiplication table must be square with ``check=True``::
+
+            sage: FiniteDimensionalEuclideanJordanAlgebra(QQ,((),()))
+            Traceback (most recent call last):
+            ...
+            ValueError: multiplication table is not square
+
         """
         if check:
             if not field.is_subring(RR):
@@ -98,6 +108,9 @@ class FiniteDimensionalEuclideanJordanAlgebra(CombinatorialFreeModule):
 
         # The multiplication table had better be square
         n = len(mult_table)
+        if check:
+            if not all( len(l) == n for l in mult_table ):
+                raise ValueError("multiplication table is not square")
 
         fda = super(FiniteDimensionalEuclideanJordanAlgebra, self)
         fda.__init__(field,