public void Combined() { var bytesToProcess = 256; var receivedData = new List <byte>(); var sim = new RTLSynchronousSimulator <CompositionModule>(); sim.Trace(PathTools.VCDOutputPath()); sim.IsRunning = (topLevel) => receivedData.Count < bytesToProcess; sim.OnPostStage = (topLevel) => { if (topLevel.HasData) { receivedData.Add(topLevel.Data); } }; sim.Run(); Assert.AreEqual(bytesToProcess, receivedData.Count); var missing = Enumerable .Range(0, bytesToProcess) .Zip(receivedData, (e, a) => new { e, a }) .Where(p => p.e != p.a) .Select(p => $"E: {p.e}, A: {p.a}") .ToList(); Assert.AreEqual(0, missing.Count, missing.ToCSV()); }
public void InverterFeedback() { var sim = new RTLSynchronousSimulator <InverterFeedback>(); sim.Trace(PathTools.VCDOutputPath()); Assert.ThrowsException <MaxStageIterationReachedException>(() => { sim.Run(); }); }