From 26300571708fdc4e05da64227609a223cfc1cd4c Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Mon, 9 Nov 2020 07:07:19 -0500 Subject: [PATCH] eja: check that the multiplication table is square with check=True. --- mjo/eja/eja_algebra.py | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/mjo/eja/eja_algebra.py b/mjo/eja/eja_algebra.py index 5627973..3846b83 100644 --- a/mjo/eja/eja_algebra.py +++ b/mjo/eja/eja_algebra.py @@ -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, -- 2.44.2