static void RunSequence(StringBuilder sb, string initialIndent, string dataDir, string file, int seqNum) { Dictionary <Guid, int> cacheIndex; List <CacheItem> cacheItems; List <EDSequenceEntry> edSequence; LoadEDSequence(file, out cacheIndex, out cacheItems, out edSequence); if (edSequence == null || edSequence.Count == 0) { return; } string listName = String.Format("Sequence_{0:00000}.list", seqNum); string testsName = String.Format("Sequence_{0:00000}.tests", seqNum); using (var sw = new StreamWriter(Path.Combine(dataDir, listName), false, Encoding.UTF8)) sw.FormatList(cacheItems); string indent = initialIndent + "\t"; int idx; var pq = new PriorityQueueState(); using (var sw = new StreamWriter(Path.Combine(dataDir, testsName), false, Encoding.UTF8)) { foreach (EDSequenceEntry entry in edSequence) { idx = cacheIndex [entry.Item.Guid]; switch (entry.Type) { case EDSequenceEntryType.Enqueue: sw.FormatEnqueue(pq, cacheItems, idx); break; case EDSequenceEntryType.Dequeue: sw.FormatDequeue(pq); break; case EDSequenceEntryType.Disable: sw.FormatDisableItem(pq, cacheItems, idx); break; case EDSequenceEntryType.Peek: sw.FormatPeek(pq); break; case EDSequenceEntryType.Update: sw.FormatUpdate(pq, cacheItems, entry.Item, idx); break; } } sw.FormatQueueSize(pq); while (pq.Queue.Count > 0) { sw.FormatDequeue(pq); } } sb.SequenceMethodStart(initialIndent, file, seqNum); sb.AppendFormat("{0}RunTest (\"{1}\", \"{2}\");", indent, testsName, listName); sb.AppendLine(); sb.SequenceMethodEnd(initialIndent); }