private static IEnumerable <RomanSymbol> CreateRepetition(RomanSymbol romanSymbol, int count = 1) => !romanSymbol.IsRepitable || count == 1 ? new RomanSymbol[] { romanSymbol } : Enumerable.Repeat(romanSymbol, count);
public static int CalculateNumberOfOcurrances(RomanSymbol romanSymbol, ArabicNumber arabic) { if (arabic.Equals(ArabicNumber.Zero)) { return(0); } var result = arabic.DevidedBy(romanSymbol); return(result); }
public static RomanSymbolRepetition FromOcurrancesOfSymbol(RomanSymbol romanSymbol, ArabicNumber arabic) { if (!CanCreateRepetition(romanSymbol, arabic)) { return(Empty); } var count = CalculateNumberOfOcurrances(romanSymbol, arabic); return(new RomanSymbolRepetition(romanSymbol, count)); }
public static bool TryParse(string romanRaw, out RomanSymbol romanSymbol) { romanSymbol = Parse(romanRaw); return(romanSymbol != null); }
public static bool CanCreateRepetition(RomanSymbol romanSymbol, int num) => romanSymbol.IsSmallerOrEqualTo(num);
public static bool CanCreateRepetition(RomanSymbol romanSymbol, ArabicNumber arabic) => CanCreateRepetition(romanSymbol, arabic.Value);
public static object CanCreateRepetition(RomanSymbol v, object arabic) { throw new System.NotImplementedException(); }
public RomanSymbolRepetition(RomanSymbol romanSymbol, int count = 1) { Items = CreateRepetition(romanSymbol, count); }