public void Equality() { Assert.Multiple(() => { Assert.That(Sym.From('A'), Is.EqualTo(Sym.From('A'))); Assert.That(Sym.From("HAMSTER"), Is.EqualTo(Sym.From("HAMSTER"))); }); }
static object _Read(GridNode node) { var groups = node.Head .Select((v, y) => (y: y + 1, v)) .Where(t => t.v != "") .GroupBy(t => t.v) .Select(g => SimpleGroup.From(g.Select(t => t.y), Sym.From(g.Key))) .ToArray(); var map = groups.Aggregate( Map <int, Sym> .Empty, (m, g) => m.Add(GroupMap.Lift(g.Nodes, g.Value))); if (node.Tail != null) { var right = Read(node.Tail).As <Map <int, Sym> >(); map = map.Add(right); } return(map); }