public bool IsValid(string building)
{
var chain = new Chain(building);
var countCalculator = new ElementsCount();
var firstCount = (int)countCalculator.Calculate(chain.CongenericChain(0), Link.Start);
for (int i = 1; i < chain.Alphabet.Cardinality; i++)
{
if (firstCount != (int)countCalculator.Calculate(chain.CongenericChain(i), Link.Start))
{
return false;
}
}
return true;
}