]> gitweb.michael.orlitzky.com - sage.d.git/commitdiff
Add remaining examples/tests for rearrangement_cone.
authorMichael Orlitzky <michael@orlitzky.com>
Sun, 20 Sep 2015 13:51:57 +0000 (09:51 -0400)
committerMichael Orlitzky <michael@orlitzky.com>
Sun, 20 Sep 2015 13:51:57 +0000 (09:51 -0400)
mjo/cone/rearrangement.py

index 6ea993c3b1b441980e648ee2e1a6d4ebaf964c57..5da9b284ab66d7ca816167e2729a31eabbc22700 100644 (file)
@@ -6,6 +6,7 @@ from site import addsitedir
 addsitedir(abspath('../../'))
 
 from sage.all import *
+from mjo.cone.cone import lyapunov_rank
 
 def rearrangement_cone(p,n):
     r"""
@@ -53,12 +54,35 @@ def rearrangement_cone(p,n):
         sage: rearrangement_cone(5,5).lineality()
         4
 
+    All rearrangement cones are proper::
+
+        sage: all([ rearrangement_cone(p,n).is_proper()
+        ....:               for n in range(10)
+        ....:               for p in range(n) ])
+        True
+
+    The Lyapunov rank of the rearrangement cone of order ``p`` in ``n``
+    dimensions is ``n`` for ``p == 1`` or ``p == n`` and one otherwise::
+
+        sage: all([ lyapunov_rank(rearrangement_cone(p,n)) == n
+        ....:               for n in range(2, 10)
+        ....:               for p in [1, n-1] ])
+        True
+        sage: all([ lyapunov_rank(rearrangement_cone(p,n)) == 1
+        ....:               for n in range(3, 10)
+        ....:               for p in range(2, n-1) ])
+        True
+
     TESTS:
 
-    todo.
-    should be permutation invariant.
-    should have the expected lyapunov rank.
-    just loop through them all for n <= 10 and p < n?
+    The rearrangement cone is permutation-invariant::
+
+        sage: n = ZZ.random_element(2,10).abs()
+        sage: p = ZZ.random_element(1,n)
+        sage: K = rearrangement_cone(p,n)
+        sage: P = SymmetricGroup(n).random_element().matrix()
+        sage: all([ K.contains(P*r) for r in K.rays() ])
+        True
 
     """