public void GetGlyph_TextTooShort_ReturnsSubList(int pos) { var text = ImmutableList <Glyph> .Empty.Add(new Glyph('a', true)) .Add(new Glyph('b', false)).Add(new Glyph('c', true)); uint delay = 1; uint endsDelay = 2; var selector = new ScrollingGlyphSelector(delay, endsDelay, 3); Assert.True(text.SequenceEqual(selector.GetSelected())); }
public void GetGlyph_PartialDisplay_ReturnsSubList(int pos) { var text = ImmutableList <Glyph> .Empty.Add(new Glyph('a', true)) .Add(new Glyph('b', false)).Add(new Glyph('c', true)); uint delay = 1; uint endsDelay = 2; var selector = new ScrollingGlyphSelector(delay, endsDelay, 2).SetText(text); Assert.True(text.GetRange(0, 2).SequenceEqual(selector.GetSelected())); }
public void GetGlyph_AtStart_ReturnsWithoutOffset(int pos) { var text = ImmutableList <Glyph> .Empty.Add(new Glyph('a', true)) .Add(new Glyph('b', false)).Add(new Glyph('c', true)); uint delay = 1; uint endsDelay = 2; var selector = new ScrollingGlyphSelector(delay, endsDelay, 3).SetText(text); Assert.AreEqual(text, selector.GetSelected()); }
public void GetGlyph_WithDelay_ReturnsWithOffset() { var text = ImmutableList <Glyph> .Empty.Add(new Glyph('a', true)) .Add(new Glyph('b', false)).Add(new Glyph('c', true)); uint delay = 1; uint endsDelay = 2; var selector = new ScrollingGlyphSelector(delay, endsDelay, 1).SetText(text); selector = selector.Tick(2); Assert.True(text.GetRange(1, 1).SequenceEqual(selector.GetSelected())); selector = selector.Tick(3); Assert.True(text.GetRange(2, 1).SequenceEqual(selector.GetSelected())); selector = selector.Tick(5); Assert.True(text.GetRange(0, 1).SequenceEqual(selector.GetSelected())); }
public static void HelloWorld() { var gpioHandler = new GpioHandler(); var segment_pins = ImmutableList <Pin> .Empty .Add(new Pin(21, false)).Add(new Pin(20, false)) .Add(new Pin(16, false)).Add(new Pin(12, false)) .Add(new Pin(7, false)).Add(new Pin(8, false)) .Add(new Pin(25, false)).Add(new Pin(24, false)); var digit_pins = ImmutableList <Pin> .Empty .Add(new Pin(26, false)).Add(new Pin(19, false)) .Add(new Pin(13, false)).Add(new Pin(6, false)) .Add(new Pin(5, false)).Add(new Pin(11, false)) .Add(new Pin(9, false)).Add(new Pin(10, false)); var directWriter = new SimplerDirectSsdWriter(segment_pins, digit_pins, gpioHandler); var converter = new SegmentsConverter(); var selector = new ScrollingGlyphSelector(1000000, 2000000, digit_pins.Count); ISsdWriter <string> stringWriter = new StringSsdWriter(directWriter, converter.GetSegments, selector); stringWriter = stringWriter.Write("Hello world please work"); uint millis = 0; uint step = 800; while (true) { stringWriter = stringWriter.Tick(millis); gpioHandler.SleepMicros(step); millis += step; } }
public void GetGlyph_Empty_ReturnsEmptyGlyphs() { var selector = new ScrollingGlyphSelector(1, 2, 1); Assert.AreEqual(ImmutableList <Glyph> .Empty, selector.GetSelected()); }