public void BenchmarkSimpleWriter() { //var buffer = new byte[500000]; var memoryStream = new MemoryStream(buffer); var values = new Dictionary <string, string>(); values["Year"] = "2008"; values["Title"] = "Iron Man"; values["Production Studio"] = "Marvel Studios"; foreach (var iteration in Benchmark.Iterations) { using (var streamWriter = new StreamWriter(memoryStream, Encoding.Default, 512, true)) { using (iteration.StartMeasurement()) { var simpleWriter = new SimpleWriter(streamWriter); simpleWriter.WriteHeader("Year", "Title", "Production Studio"); for (int innerIteration = 0; innerIteration < Benchmark.InnerIterationCount; innerIteration++) { simpleWriter.WriteLine(values); } streamWriter.Flush(); } } memoryStream.Seek(0, SeekOrigin.Begin); } }
public void BenchmarkSimpleWriterToFile() { var values = new Dictionary <string, string>(); values["Year"] = "2008"; values["Title"] = "Iron Man"; values["Production Studio"] = "Marvel Studios"; int outerIterations = 0; foreach (var iteration in Benchmark.Iterations) { var fileStream = new FileStream($"tempfile{outerIterations++}.csv", FileMode.Create, FileAccess.Write); using (var streamWriter = new StreamWriter(fileStream, Encoding.Default, 512, false)) { using (iteration.StartMeasurement()) { var simpleWriter = new SimpleWriter(streamWriter); simpleWriter.WriteHeader("Year", "Title", "Production Studio"); for (int innerIteration = 0; innerIteration < Benchmark.InnerIterationCount; innerIteration++) { simpleWriter.WriteLine(values); } streamWriter.Flush(); } } } }
private void WriteMarvelCsv(SimpleWriter simpleWriter) { simpleWriter.WriteHeader("Year", "Title", "Production Studio"); var values = new Dictionary <string, string>() { { "Year", "2008" }, { "Title", "Iron Man" }, { "Production Studio", Marvel } }; simpleWriter.WriteLine(values); values["Title"] = "The Incredible Hulk"; simpleWriter.WriteLine(values); values["Title"] = "Punisher: War Zone"; simpleWriter.WriteLine(values); values["Year"] = "2009"; values["Title"] = "X-Men Origins: Wolverine"; values["Production Studio"] = Fox; simpleWriter.WriteLine(values); values["Year"] = "2010"; values["Title"] = "Iron Man 2"; values["Production Studio"] = Marvel; simpleWriter.WriteLine(values); values["Year"] = "2011"; values["Title"] = "Thor"; simpleWriter.WriteLine(values); values["Title"] = "X-Men: First Class"; values["Production Studio"] = Fox; simpleWriter.WriteLine(values); }
static void Main(string[] args) { // separation of concerns // different "concerns" or "considerations" in code shouldn't be tangled together // single responsibility principle (S in SOLID) // a unit of code (e.g. class, method) should have just one responsibility. // DRY principle // don't repeat yourself // KISS // keep it simple stupid (unless it's on codesignal) // have a list of products IEnumerable <Product> catalog = GetProducts(); // allow for some customization of that display to the user string input = null; while (input != "s" && input != "d") { Console.WriteLine("Enter s for simple, d for detailed: "); input = Console.ReadLine(); } string input2 = null; while (input2 != "y" && input2 != "n") { Console.WriteLine("Sort? y/n: "); input2 = Console.ReadLine(); } ISorter sorter; if (input2 == "y") { sorter = new PriceSorter(); } else { sorter = new NonSorter(); } IWriter writer; // display them to the user if (input == "s") { writer = new SimpleWriter(sorter); } else { writer = new DetailedWriter(sorter); } writer.FormatAndDisplay(catalog); // dependency inversion principle (D in SOLID) // - don't have classes depend on each other directly // instead, have them depend on interfaces }
public void Is_Instance_Of_Type_ISimplyWrite() { // Arrange SimpleWriter simpleWriter = new SimpleWriter(); // Assert Assert.IsInstanceOfType(simpleWriter, typeof(ISimplyWrite)); }
private static void RunTest(string fileName, string expected) { var services = ServiceUtils.BuildServices(); var templateFactory = services.GetRequiredService <ITemplateFactory>(); var template = templateFactory.GenerateFromPath($@"Tests/Templates/{fileName}.csx"); var writer = new SimpleWriter(); template.Execute(new List <ContainerInspectResponse>(), writer); var contents = writer.Written; Assert.Equal(expected, contents); }
public void TestSimpleWriter() { var memoryStream = new MemoryStream(); var streamWriter = new StreamWriter(memoryStream); var simpleWriter = new SimpleWriter(streamWriter); WriteMarvelCsv(simpleWriter); streamWriter.Flush(); memoryStream.Seek(0, SeekOrigin.Begin); var streamReader = new StreamReader(memoryStream); var testString = streamReader.ReadToEnd(); var refString = GetReferenceMarvelCsv(); Assert.Equal(refString, testString); }
protected async void OnTriggered(DockerGenConfiguration configuration) { var containers = await GetContainers(configuration); var writer = new SimpleWriter(); var template = _templateFactory.GenerateFromPath(configuration.Template); var containerInspections = containers .Select(c => c.ID) .Select(containerId => Client.Containers.InspectContainerAsync(containerId).Result) .ToList(); await template.Execute(containerInspections, writer); var generatedContents = writer.Written; var targetFile = configuration.Destination; if (!Path.IsPathRooted(targetFile)) { targetFile = Path.Combine(Directory.GetCurrentDirectory(), targetFile); } var currentFileContents = ""; if (File.Exists(targetFile)) { currentFileContents = File.ReadAllText(targetFile); } if (currentFileContents == "" || currentFileContents != generatedContents) { //Change detected lets write the contents File.Delete(targetFile); File.Create(targetFile); await File.WriteAllTextAsync(targetFile, generatedContents); await OnChanged(configuration); } }
static void Main(string[] args) { ISQLQueryWriter writer = new SimpleWriter(); string response; response = SelectTest.TestComplexSelect(writer); Console.WriteLine(response); Console.WriteLine(); response = SelectTest.TestCustomSelectString(writer); Console.WriteLine(response); Console.WriteLine(); response = InsertTest.TestInsertWithKeys(writer); Console.WriteLine(response); Console.WriteLine(); response = InsertTest.TestInsert(writer); Console.WriteLine(response); Console.WriteLine(); response = UpdateTest.TestUpdate(writer); Console.WriteLine(response); Console.WriteLine(); response = DeleteTest.Delete(writer); Console.WriteLine(response); Console.WriteLine(); response = DeleteTest.DeleteAll(writer); Console.WriteLine(response); Console.WriteLine(); Console.ReadLine(); }
/* * This test can be used to make sure the GC can keep up * with the allocations in a LockFreeQueue */ //[Test] public void LFQMemTest() { /* * We dump a huge amount of data into the queue and * make sure memory doesn't blow up */ LockFreeQueue <object> queue = new LockFreeQueue <object>(); SimpleReader read = new SimpleReader(null, queue); //We should try about 2^30 so make sure we would fill nearly fill the //memory if there was a leak int runs = 1 << 30; SimpleWriter write = new SimpleWriter(runs, new object(), queue); Thread rt = new Thread(read.Run); Thread wt = new Thread(write.Run); rt.Start(); wt.Start(); wt.Join(); //Put in the stop value: queue.Enqueue(null); rt.Join(); //We added one more item (null) Assert.AreEqual(write.Writes + 1, read.Reads, "Writes equals reads"); }
static void Main(string[] args) { // separation of concerns // different concerns in code shouldn't be tangled together // single responsibility principle (S in SOLID) // a unit of code like class method should have just one responsibility // DRY principle do not repeat yourself // KISS Keep it simple stupid // functionalities // have a list of products List <Product> catalog = GetProducts(); // user's choice of sort and display string userInput = null; while (userInput != "s" && userInput != "d") { Console.WriteLine("Enter s for simple, d for detailed"); userInput = Console.ReadLine(); } // dependency inversion principle (D in SOLID) // dont have classes depend on each other directly // instead, have them depend on // A(B) , A(Interface B) // polymorphism string userInput2 = null; while (userInput2 != "y" && userInput2 != "n") { Console.WriteLine("Have the list sorted? y/n "); userInput2 = Console.ReadLine(); } ISorter sorter; if (userInput2 == "y") { sorter = new PriceSorter(); } else { sorter = new NonSorter(); } // sorted catalog goes in to writer IWriter writer; if (userInput == "s") { writer = new SimpleWriter(sorter); } else { writer = new DetailedWriter(sorter); } writer.FormatAndDisplay(catalog); }