public void CommutatorTest() { var a = new Cycle("123"); var b = new Cycle("234"); Assert.AreEqual(a.Commutate(b).ToString(), "14,23"); }
public static IEnumerable <Cycle> CombinationsWith(this Cycle a, Cycle b) { var report = (a + b).Variations() .Concat((b + a).Variations()) .Concat((a - b).Variations()) .Concat((-b + a).Variations()) .Concat(a.Conjugate(b).Variations()) .Concat((-a).Conjugate(b).Variations()) .Concat(b.Conjugate(a).Variations()) .Concat((-b).Conjugate(a).Variations()) .Concat(a.Commutate(b).Variations()) .Concat(a.Commutate(-b).Variations()) .Concat((-a).Commutate(b).Variations()) .Concat((-a).Commutate(-b).Variations()); foreach (var r in report) { yield return(r); } }