public virtual string ToLcd(int number, Scaling scaling) { IList <Digit> digits = digitsSplitter.Convert(number); IList <Digit> scaled = digitScaler.Scale(digits, scaling); return(digitPrinter.Render(scaled)); }
public virtual string Repeat(char aChar, Scaling scaling) { StringBuilder acc = new StringBuilder(); scaling.Times(() => acc.Append(aChar)); return(acc.ToString()); }
private Digit Scale(Digit digit, Scaling scaling) { if (scaling.HasNone()) { return(digit); } List <Line> scaled = new List <Line>(); bool oddLine = true; foreach (Line line in digit.Lines()) { Line scaledLine = line.ScaleHorizontal(repeater, scaling); if (oddLine) { scaled.Add(scaledLine); } else { scaled.AddRange(repeater.Repeat(scaledLine, scaling)); } oddLine = !oddLine; } return(digit.Scale(scaled)); }
public virtual IList <T> Repeat <T>(T element, Scaling scaling) { IList <T> elements = new List <T>(); scaling.Times(() => elements.Add(element)); return(elements); }
public override bool Equals(object other) { if (!(other is Scaling)) { return(false); } Scaling that = (Scaling)other; return(this.times == that.times); }
public virtual string ToLcd(int number, Scaling scaling) { if (scaling == null) { throw new ArgumentNullException(nameof(scaling)); } IList <Digit> digits = digitsSplitter.Convert(number); IList <Digit> scaled = digitScaler.Scale(digits, scaling); return(digitPrinter.Render(scaled)); }
public virtual string Repeat(char aChar, Scaling scaling) { if (scaling == null) { throw new ArgumentNullException(nameof(scaling)); } StringBuilder acc = new StringBuilder(); scaling.Times(() => acc.Append(aChar)); return(acc.ToString()); }
public static void Main(string[] args) { LcdDisplay lcdDisplay = new LcdDisplay( // new DigitsSplitter(new NumeralSystem(), new DigitFactory(new Patterns())), // new DigitScaler(new ScalingRepeater()), // new DigitPrinter(new Zipper())); int number = Convert.ToInt32(args[0]); Scaling scaling = Scaling.Of(Convert.ToInt32(args[1])); Console.WriteLine(lcdDisplay.ToLcd(number, scaling)); Console.ReadKey(); }
public virtual IList <Digit> Scale(IList <Digit> digits, Scaling scaling) { if (digits == null) { throw new ArgumentNullException(nameof(digits)); } if (scaling == null) { throw new ArgumentNullException(nameof(scaling)); } return(digits.Select(d => Scale(d, scaling)).ToList()); }
public virtual Line ScaleHorizontal(ScalingRepeater repeater, Scaling scaling) { if (repeater == null) { throw new ArgumentNullException(nameof(repeater)); } if (scaling == null) { throw new ArgumentNullException(nameof(scaling)); } char[] chars = line.ToCharArray(); return(new Line(chars[0] + repeater.Repeat(chars[1], scaling) + chars[2])); }
public virtual IList <T> Repeat <T>(T element, Scaling scaling) { if (element == null) { throw new ArgumentNullException(nameof(element)); } if (scaling == null) { throw new ArgumentNullException(nameof(scaling)); } IList <T> elements = new List <T>(); scaling.Times(() => elements.Add(element)); return(elements); }
public Scaling GetScaling() { return(args.Length > 1 ? Scaling.Of(Convert.ToInt32(args[1])) : Scaling.None); }
public virtual IList <Digit> Scale(IList <Digit> digits, Scaling scaling) { return(digits.Select(d => Scale(d, scaling)).ToList()); }