public void WriteString_SameContent_DoNotWritesAgain() { var testWriter = new TestSsdWriter(); var testSelector = new TestSelector(); var stringWriter = new StringSsdWriter(testWriter, (Glyph g) => (byte)g.Character, testSelector); var str = "123"; var tickable = stringWriter.Write(str).Tick(0); testWriter.Reset(); tickable = tickable.Tick(0); testWriter.TestUnwritten(); }
public void WriteString_WritesAndTicks() { var testWriter = new TestSsdWriter(); var testSelector = new TestSelector(); var stringWriter = new StringSsdWriter(testWriter, (Glyph g) => (byte)g.Character, testSelector); var str = "123"; testSelector.CreateNew = true; var tickable = stringWriter.Write(str).Tick(0); testWriter.TestValues(ImmutableList <byte> .Empty .Add((byte)'1').Add((byte)'2').Add((byte)'3')); testWriter.TestTime(0); }
public void WriteString_Writes() { var testWriter = new SsdWriterStub <byte>(); ISsd stringWriter = new StringSsdWriter(testWriter, (Glyph g) => (byte)g.Character, (arg1, arg2) => new SelectorStub <byte> { Text = arg1 }); var str = "123"; stringWriter = stringWriter.Write(str); Assert.IsTrue(testWriter.LastValues.SequenceEqual(ImmutableList <byte> .Empty .Add((byte)'1').Add((byte)'2').Add((byte)'3'))); }
public void Write_NotEnoughSpace_WritesFirsts() { var testWriter = new SsdWriterStub <byte>(); ISsd stringWriter = new StringSsdWriter(testWriter, (Glyph g) => (byte)g.Character, (arg1, arg2) => new SelectorStub <byte> { Text = arg1 }); var strs = ImmutableList <(string, uint)> .Empty .Add(("1", 1)).Add(("2", 1)).Add(("3", 1)).Add(("4", 1)); stringWriter = stringWriter.Write(strs); Assert.IsTrue(testWriter.LastValues.SequenceEqual(ImmutableList <byte> .Empty .Add((byte)'1').Add((byte)'2').Add((byte)'3'))); }
public void ReceiveInterrupt_OnSelector_Writes() { var testWriter = new SsdWriterStub <byte>(); var testSelector = new SelectorStub <byte>(); ISsd stringWriter = new StringSsdWriter(testWriter, (Glyph g) => (byte)g.Character, (arg1, arg2) => { testSelector.Text = arg1; return(testSelector); }); var str = "123"; stringWriter = stringWriter.Write(str); testSelector.NewText = ImmutableList <byte> .Empty.Add(100); stringWriter = stringWriter.Tick(1); Assert.IsTrue(testWriter.LastValues.SequenceEqual(testSelector.NewText)); }
public void ReceiveInterrupt_onWriter_ReceivesIt() { var testWriter = new SsdWriterStub <byte>(); ISsd stringWriter = new StringSsdWriter(testWriter, (Glyph g) => (byte)g.Character, (arg1, arg2) => new SelectorStub <byte> { Text = arg1 }); var str = "123"; stringWriter = stringWriter.Write(str); testWriter.NextTickTime = 0; stringWriter = stringWriter.Tick(1); Assert.AreEqual(1, testWriter.TickTime); }
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; } }