public void NestedChildTables() { var tables = TestSets.Countries(1000, 37).Process( () => new SimpleTableMapper(new TableDefinition("Test") .Key("VisitId", s => s.Current <IVisitAggregationContext>().Visit.InteractionId) .Fact("Value", s => s.Current <IVisitAggregationContext>().Visit.Value) .Map(s => s.Current <IVisitAggregationContext>().Visit.Pages, new TableDefinition("Pages") .Key("Id", s => s.Current <PageData>().Item.Id) .Fact("Value", s => s.Current <PageData>().PageEvents.Sum(pe => pe.Value)) .Map(s => s.Current <PageData>().PageEvents, new TableDefinition("Events") .Dimension("Event", s => s.Current <PageEventData>().PageEventDefinitionId) .Fact("Value", s => s.Current <PageEventData>().Value))) .Map(s => new[] { s.Current <IVisitAggregationContext>().Visit.Pages.First() }, new TableDefinition("Pages2") .Key("Id", s => s.Current <PageData>().Item.Id)))); var visits = tables.FirstOrDefault(t => t.Schema.Name == "Test"); var pages = tables.FirstOrDefault(t => t.Schema.Name == "Pages"); var pages2 = tables.FirstOrDefault(t => t.Schema.Name == "Pages2"); var events = tables.FirstOrDefault(t => t.Schema.Name == "Events"); Assert.AreEqual(1000, visits.Rows.Count()); Assert.AreEqual(14000, visits.Fields <int>("Value").Sum()); Assert.AreEqual(14000, pages.Fields <int>("Value").Sum()); Assert.AreEqual(14000, events.Fields <int>("Value").Sum()); Assert.AreEqual(3000, pages.Rows.Count()); Assert.AreEqual(3000, events.Rows.Count()); Assert.AreEqual(1000, pages2.Rows.Count()); }
public void UUTCOCommandTest() { TestSets testCollections = Hydrator.Hydrate("CO Command Test", COCommandXML); ResponseProcessor.BindEvents(testCollections["Bootup"], Assembly.GetAssembly(typeof(TruePosition.Test.Custom.CSharp.CustomCommandEvents))); //ResponseProcessor.BindEvents(testCollections["Bootup"], Assembly.LoadFile(@"C:\Development\Kapsoft\True Position\Test Components\Output\Out.dll")); QFManager.Port.Create(PortType.Serial, "COM1"); QFManager.Port.Receive("COM1", port_DataReceived); QFManager.Port.Error("COM1", port_Error); QFManager.Port.ReceiveTimeout("COM1", port_ReceiveTimeoutExpired); QFManager.Port.Open("COM1"); Test test = testCollections["Bootup"]["1A"]; QFManager.Test.Load(test, UUTTestMode.Direct); QFManager.Test.Stepping(test.Name, test_Stepping); QFManager.Test.TestStepped(test.Name, test_Stepped); QFManager.Test.Passed(test.Name, test_Passed); QFManager.Test.Failed(test.Name, test_Failed); QFManager.UUT.Load("LMU1", @"..\..\..\Documents\\UUT CO Response.xml", test, UUTTestMode.Direct); QFManager.UUT.Failed("LMU1", uut_Failed); QFManager.UUT.Passed("LMU1", uut_Passed); QFManager.UUT.Run("LMU1"); QFManager.Test.Run(test.Name); System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite); }
public void HydrateTest() { string name = "Bootup"; TestSets actual = Hydrator.Hydrate(name, convertedXMLFilePath); Assert.IsNotNull(actual); }
public void UUTBootup1ETest() { TestSets testCollections = Hydrator.Hydrate("Bootup Tests", TestBootup1EXML); QFManager.Port.Create(PortType.Serial, "COM1"); QFManager.Port.Receive("COM1", port_DataReceived); QFManager.Port.Error("COM1", port_Error); QFManager.Port.ReceiveTimeout("COM1", port_ReceiveTimeoutExpired); QFManager.Port.Open("COM1"); Test test = testCollections["Bootup"]["1E"]; QFManager.Test.Load(test, UUTTestMode.Direct); QFManager.Test.Stepping(test.Name, test_Stepping); QFManager.Test.TestStepped(test.Name, test_Stepped); QFManager.Test.Passed(test.Name, test_Passed); QFManager.Test.Failed(test.Name, test_Failed); QFManager.Test.Aborted(test.Name, test_Aborted); //QFManager.Test.Abort(test.Name, "Abort before we even got started."); //System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite); QFManager.UUT.Load("LMU1", @"..\..\..\Documents\\UUT Bootup-1E Responses.xml", test, UUTTestMode.Direct); QFManager.UUT.Failed("LMU1", uut_Failed); QFManager.UUT.Passed("LMU1", uut_Passed); QFManager.UUT.Run("LMU1"); QFManager.Test.Run(test.Name); System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite); //System.Threading.Thread.Sleep(1000); //QFManager.Test.Abort(test.Name, "Because I wanted to. That's why..."); }
/// <summary> /// finds all folders in the TestSet list, scans their tree and adds all sets under the given folders /// updates the TestSets by expanding the folders, and removing them, so only Test sets remain in the collection /// </summary> private void FindAllTestSetsUnderFolders() { List <string> extraSetsList = new List <string>(); List <string> removeSetsList = new List <string>(); var tsTreeManager = (ITestSetTreeManager)tdConnection.TestSetTreeManager; //go over all the testsets / testSetFolders and check which is which foreach (string testsetOrFolder in TestSets) { //try getting the folder ITestSetFolder tsFolder = GetFolder("Root\\" + testsetOrFolder.TrimEnd("\\".ToCharArray())); //if it exists it's a folder and should be traversed to find all sets if (tsFolder != null) { removeSetsList.Add(testsetOrFolder); List <string> setList = GetAllTestSetsFromDirTree(tsFolder); extraSetsList.AddRange(setList); } } TestSets.RemoveAll((a) => removeSetsList.Contains(a)); TestSets.AddRange(extraSetsList); }
public void LookupInLookup() { var tables = TestSets.Countries(1000, 9).Process(() => new TableDefinition("Test") .Dimension("VisitId", scope => scope.Current <IVisitAggregationContext>().Visit.InteractionId) .Map(new FieldMapperSet("Country", false, new IFieldMapper[] { new SimpleFieldMapper("Country", scope => scope.Current <IVisitAggregationContext>().Visit.GeoData.Country, typeof(string), FieldType.Dimension), new FieldMapperSet("Country2", false, new [] { new SimpleFieldMapper("Country", scope => scope.Current <IVisitAggregationContext>().Visit.GeoData.Country, typeof(string), FieldType.Dimension), new SimpleFieldMapper("Count", s => 1, typeof(int), FieldType.Fact), }), })) ); var visits = tables.FirstOrDefault(t => t.Schema.Name == "Test"); var countries = tables.FirstOrDefault(t => t.Schema.Name == "Country"); var countries2 = tables.FirstOrDefault(t => t.Schema.Name == "Country2"); Assert.AreEqual(1000, visits.Rows.Count()); Assert.AreEqual(9, countries.Rows.Count()); Assert.AreEqual(9, countries2.Rows.Count()); Assert.AreEqual(9, visits.Fields <long>("CountryId").Distinct().Count()); Assert.AreEqual(9, countries.Fields <long>("Country2Id").Distinct().Count()); Assert.AreEqual(1000, countries2.Fields <int>("Count").Sum()); }
public void RowPerVisitHashKey() { var table = TestSets.Countries(1000, 37).Process( () => new SimpleTableMapper(new TableDefinition("Test") .Dimension("VisitId", s => s.Current <IVisitAggregationContext>().Visit.InteractionId))).FirstOrDefault(); Assert.AreEqual(1000, table.Rows.Count()); }
public void Count() { var table = TestSets.Countries(1000, 37).Process( () => new SimpleTableMapper(new TableDefinition("Test") .Count())).FirstOrDefault(); Assert.AreEqual(1000, table.Field <int>("Count", table.Rows.First())); }
public void FactAggregation() { var table = TestSets.Countries(1000, 37).Process( () => new SimpleTableMapper(new TableDefinition("Test") .Key("VisitId", s => s.Current <IVisitAggregationContext>().Visit.InteractionId) .Fact("Value", s => s.Current <IVisitAggregationContext>().Visit.Value))).FirstOrDefault(); Assert.AreEqual(1000, table.Rows.Count()); Assert.AreEqual(14000, table.Fields <int>("Value").Sum()); }
public void TempuratureResponseTest() { XElement exerpt = XElement.Parse("<TestSets>" + "<TestSet Name=\"Bootup\">" + "<Test Type=\"Bootup\" Name=\"1A\">" + "<Step Type=\"Bootup\">" + "<Command>pro</Command>" + "<Response Delimiter=\"
\">" + "<Element>" + "<KeyExpression>value like 'TEMPERATURES:*'</KeyExpression>" + "<Expected Trim=\"true\">" + "<KeyExpression>value like '*recvr*'</KeyExpression>" + "<Expression>value >= -10</Expression>" + "<Expression>value <= 70</Expression>" + "<Destination>" + "<Name></Name>" + "<Default></Default>" + "</Destination>" + "<FailureMessage>Receiver Temperature outside limits</FailureMessage>" + "</Expected>" + "<Expected Trim=\"true\"> Trim=\"true\"" + "<KeyExpression>value like '*bdc*'</KeyExpression>" + "<Expression>value >= -10</Expression>" + "<Expression>value <= 28</Expression>" + "<Destination>" + "<Name></Name>" + "<Default></Default>" + "</Destination>" + "<FailureMessage>Receiver Temperature outside limits</FailureMessage>" + "</Expected>" + "<Expected Trim=\"true\">" + "<KeyExpression>value like '*power supply*'</KeyExpression>" + "<Expression>value >= -10</Expression>" + "<Expression>value <= 35</Expression>" + "<Destination>" + "<Name></Name>" + "<Default></Default>" + "</Destination>" + "<FailureMessage>Receiver Temperature outside limits</FailureMessage>" + "</Expected>" + "</Element>" + "</Response>" + "<Timeout>180</Timeout>" + "<BeginState>BOOT</BeginState>" + "<EndState>DSHELL</EndState>" + "<Retries>0</Retries>" + "</Step>" + "</Test>" + "</TestSet>" + "</TestSets>"); TestSets collections = Hydrator.Hydrate("Test", exerpt); ResponseProcessor.Process("First Test", collections["Bootup"]["1A"].Steps[0], "TEMPERATURES: recvr 31 bdc 28 power supply 35"); }
public void CountSum() { var table = TestSets.Countries(1000, 5).Process( () => new SimpleTableMapper(new TableDefinition("Test") .Key("Country", s => s.Current <IVisitAggregationContext>().Visit.GeoData.Country) .Count())).FirstOrDefault(); var rows = table.Rows.ToList(); Assert.AreEqual(5, rows.Count); Assert.AreEqual(1000, table.Fields <int>("Count").Sum()); }
public ActionResult UploadTest(UploadTestViewModel model) { if (!ModelState.IsValid) { return(View(model)); } using (var context = new Entities()) { if (context.TestSets.FirstOrDefault(x => x.Name.ToLower() == model.TestName) != null) { ModelState.AddModelError("TestName", "This test set name is already taken."); return(View(model)); } byte[] array; var contentType = model.file.ContentType; var expectedResults = new StringBuilder(); using (MemoryStream ms = new MemoryStream()) { model.file.InputStream.CopyTo(ms); array = ms.GetBuffer(); ms.Seek(0, SeekOrigin.Begin); var formatChecker = new FormatChecker(); expectedResults = formatChecker.GetExpectedValuesFromTestSet(ms); } var fileSize = model.file.ContentLength / 1024; var testSet = new TestSets { CreatorId = context.Users.FirstOrDefault <Users> (x => x.UserName.ToLower() == User.Identity.Name.ToLower()).Id, TotalRuns = 0, DateOfCreation = DateTime.Now, Description = model.Description, Data = array, Name = model.TestName, Size = fileSize, ExpectedResults = expectedResults.ToString().TrimStart().TrimEnd() }; context.TestSets.Add(testSet); context.SaveChanges(); } return(RedirectToAction("TestSets", "Testing")); }
static void Main(string[] args) { try { Console.Title = "Redis Features Showcase"; Redis = Common.Redis.InitializeConnection(ConfigurationManager.AppSettings["Redis.Password"]); Console.WriteLine("Pick one:"); Console.WriteLine(" 1 - Numbers"); Console.WriteLine(" 2 - Floats, Ints"); Console.WriteLine(" 3 - Bitmaps"); Console.WriteLine(" 4 - Sets"); Console.WriteLine(" 5 - Sorted Sets (simple)"); Console.WriteLine(" 6 - Sorted Sets (airports)"); Console.WriteLine(" 7 - Transactions"); Console.WriteLine(" 8 - Hashes"); Console.WriteLine(); Console.Write("> "); while (true) { switch (Console.ReadKey(true).KeyChar) { case '1': TestNumbers.Execute(Redis); return; case '2': TestFloatsInts.Execute(Redis); return; case '3': TestBitmaps.Execute(Redis); return; case '4': TestSets.Execute(Redis); return; case '5': TestSortedSimple.Execute(Redis); return; case '6': TestSortedSets.Execute(Redis); return; case '7': TestTransactions.Execute(Redis); return; case '8': TestHash.Execute(Redis); return; default: break; } } } catch (Exception e) { Console.WriteLine(e.Message); Console.WriteLine(e.StackTrace); Console.Write("<ENTER> "); Console.ReadLine(); } }
public PSO(double Omega, double OmegaLocal, double OmegaGlobal, int ParticleCount, TestSets set, Machine Base, int MaxStates=15, double DeathChance=0.003, int ProgressCount = 5) { this.ProgressCount = ProgressCount; this.DeathChance = DeathChance; this.Base = Base; machine2 = GenerateMachineRepresentation(Base); this.particleCount = ParticleCount; InitializeComponent(); TestCount = set.TrainingSet.Count; DataContext = this; this.set = set; MachinePSO.Initialize(set.TrainingSet.Keys.ToList(), (w1, w2) => (set.TrainingSet[new Tuple<int[], int[]>(w1, w2)]), MaxStates, Base.alphabet, set.AllWords); MachinePSO.InputParameters(Omega, OmegaLocal, OmegaGlobal); }
public TestSets PostTestSet(TestSets testSets) { var client = new RestClient(conFIG.QACompleteEndPoint + "v1/projects/{projectID}/TestSets"); var request = new RestRequest(Method.POST); request.AddUrlSegment("projectID", Project); request.AddJsonBody(testSets); request.AddHeader("Authorization", Auth); request.AddHeader("Content-Type", "application/json"); var response = client.Execute(request); string L = response.Content; return(JsonConvert.DeserializeObject <QACDataModel.TestSets>(L)); }
public TestSummary[] SplitByAsset() { //this function is useful to split out results by asset for asset specific analysis List <TestSummary> grouped = new List <TestSummary>(); //get all the asset names that exist in the test sets. string[] assets = TestSets.Select(x => x.Asset).Distinct().ToArray(); //a new test summary object will be created for every asset containing only the test sets that relate to that asset foreach (string asset in assets) { //creaet a new test summary with test sets filtered by the asset name grouped.Add(new TestSummary(this, asset)); } return(grouped.ToArray()); }
public void Splitter() { var splitter = new PageConditionSplitter((scope, page) => page.VisitPageIndex == 2); var table = TestSets.Countries(1000, 37).Process( () => new SimpleTableMapper(new TableDefinition("Test") .Key("VisitId", s => s.Current <IVisitAggregationContext>().Visit.InteractionId) .Map(new SplittingFieldMapper(splitter, (name) => new[] { new SimpleFieldMapper("Value" + name, s => s.Current <IVisitAggregationContext>() .Visit.Value, typeof(int), FieldType.Fact) })))).FirstOrDefault(); Assert.AreEqual(1000, table.Rows.Count()); Assert.AreEqual(5000, table.Fields <int>("ValueBefore").Sum()); Assert.AreEqual(9000, table.Fields <int>("ValueAfter").Sum()); Assert.AreEqual(14000, table.Fields <int>("ValueTotal").Sum()); }
public void ActiveTestTest() { TestSets testCollections = Hydrator.Hydrate("CO Command Test", COCommandXML); ResponseProcessor.BindEvents(testCollections["Bootup"], Assembly.GetAssembly(typeof(TruePosition.Test.Custom.CSharp.CustomCommandEvents))); QFManager.Port.Create(PortType.Serial, "COM1"); QFManager.Port.Receive("COM1", port_DataReceived); QFManager.Port.Error("COM1", port_Error); QFManager.Port.ReceiveTimeout("COM1", port_ReceiveTimeoutExpired); QFManager.Port.Open("COM1"); Test test = testCollections["Bootup"]["1A"]; QFManager.Test.Load(test); QFManager.Test.Failed(test.Name, test_Failed); QFManager.Test.Passed(test.Name, test_Passed); QFManager.Test.Run(test.Name); System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite); }
public void TwoFieldInlineLookup() { var tables = TestSets.Countries(1000, 9, regionsPerCountry: 3).Process(() => new TableDefinition("Test") .Dimension("VisitId", scope => scope.Current <IVisitAggregationContext>().Visit.InteractionId) .Map(new FieldMapperSet("Country", true, new[] { new SimpleFieldMapper("Country", scope => scope.Current <IVisitAggregationContext>().Visit.GeoData.Country, typeof(string), FieldType.Dimension), new SimpleFieldMapper("Region", scope => scope.Current <IVisitAggregationContext>().Visit.GeoData.Region, typeof(string), FieldType.Dimension), })) ); Assert.AreEqual(1, tables.Count()); var visits = tables.FirstOrDefault(t => t.Schema.Name == "Test"); Assert.AreEqual(1000, visits.Rows.Count()); Assert.AreEqual(9, visits.Fields <string>("Country").Distinct().Count()); Assert.AreEqual(27, visits.Fields <string>("Region").Distinct().Count()); }
public void COResponseFileTest() { TestSets testCollections = Hydrator.Hydrate("CO Command Test", COCommandXML); ResponseProcessor.BindEvents(testCollections["Bootup"], Assembly.GetAssembly(typeof(TruePosition.Test.Custom.CSharp.CustomCommandEvents))); //Assembly.GetAssembly(typeof(TruePosition.Test.Custom.CSharp.CustomCommandEvents))); ResponseProcessor.Process("1A", testCollections["Bootup"]["1A"].Steps[0], "ESN: " + "\n" + "GBE_CTLR: NOT INSTALLED " + "\n" + "GBE_LNA: NOT INSTALLED " + "\n" + "GBE: NOT INSTALLED " + "\n" + "GBE CUST ESN: NOT INSTALLED " + "\n" + "LMU: 06162200D010082006501DA6 " + "\n" + "GPS RCVR: 06162200D010082006501DA6 " + "\n" + "RECEIVER: 06163900B0100820070403C2 " + "\n" + "BDC: 06164000C11008200704063B " + "\n" + "PSUPPLY: 06163400G0100820064300C1 " + "\n" + "CP/DSP: 06164100B1100820064700C2 " + "\n" + "DCARD: 06160301B010082006440005 " + "\n" + "EBOARD: NOT INSTALLED " + "\n" + "CUSTESN: TRULMU5207872AE " + "\n" + "TEMPERATURES: recvr 31 bdc 28 power supply 35" + "\n" + "TPESN: 06630000D010082007050130"); }
private void GenerateTests() { if (ValidatedParameters) { Set = new TestSets(Automaton, thorough, random, control); } else { Set = new TestSets(Automaton); } }
public void COResponseStepTest() { XElement exerpt = XElement.Parse("<TestSets>" + "<TestSet Name=\"Bootup\">" + "<Test Type=\"Bootup\" Name=\"1A\">" + "<Step Type=\"Bootup\">" + "<Command>pro</Command>" + "<Response Delimiter=\"
\">" + "<Element>" + "<KeyExpression>value like 'GPS RCVR:*'</KeyExpression>" + "<Expected Trim=\"true\">" + "<Expression>value lenge 24</Expression>" + "<Expression>value validesn</Expression>" + "<Expression>value not same</Expression>" + "<Destination>" + "<Name></Name>" + "<Default></Default>" + "</Destination>" + "<FailureMessage></FailureMessage>" + "</Expected>" + "</Element>" + "<Element>" + "<KeyExpression>value like 'RECEIVER:*'</KeyExpression>" + "<Expected Trim=\"true\">" + "<Expression>value len 24</Expression>" + "<Destination>" + "<Name></Name>" + "<Default></Default>" + "</Destination>" + "<FailureMessage></FailureMessage>" + "</Expected>" + "</Element>" + "<Element>" + "<KeyExpression>value like 'BDC:*'</KeyExpression>" + "<Expected Trim=\"true\">" + "<Expression>value lenge 24</Expression>" + "<Destination>" + "<Name></Name>" + "<Default></Default>" + "</Destination>" + "<FailureMessage>Receiver Temperature outside limits</FailureMessage>" + "</Expected>" + "</Element>" + "<Element>" + "<KeyExpression>value like 'PSUPPLY:*'</KeyExpression>" + "<Expected Trim=\"true\">" + "<Expression>value lenge 24</Expression>" + "<Destination>" + "<Name></Name>" + "<Default></Default>" + "</Destination>" + "<FailureMessage>Receiver Temperature outside limits</FailureMessage>" + "</Expected>" + "</Element>" + "<Element>" + "<KeyExpression>value like 'TEMPERATURES:*'</KeyExpression>" + "<Expected Trim=\"true\">" + "<KeyExpression>value like '*recvr*'</KeyExpression>" + "<Expression>value >= -10</Expression>" + "<Expression>value <= 31</Expression>" + "<Destination>" + "<Name></Name>" + "<Default></Default>" + "</Destination>" + "<FailureMessage>Receiver Temperature outside limits</FailureMessage>" + "</Expected>" + "<Expected Trim=\"true\">" + "<KeyExpression>value like '*bdc*'</KeyExpression>" + "<Expression>value >= -10</Expression>" + "<Expression>value <= 28</Expression>" + "<Destination>" + "<Name></Name>" + "<Default></Default>" + "</Destination>" + "<FailureMessage>BDC Temperature outside limits</FailureMessage>" + "</Expected>" + "<Expected Trim=\"true\">" + "<KeyExpression>value like '*power supply*'</KeyExpression>" + "<Expression>value >= -10</Expression>" + "<Expression>value <= 35</Expression>" + "<Destination>" + "<Name></Name>" + "<Default></Default>" + "</Destination>" + "<FailureMessage>Power supply Temperature outside limits</FailureMessage>" + "</Expected>" + "</Element>" + "<Element>" + "<KeyExpression>value like 'CP/DSP:*'</KeyExpression>" + "<Expected Trim=\"true\">" + "<Expression>value len 24</Expression>" + "<Destination>" + "<Name></Name>" + "<Default></Default>" + "</Destination>" + "<FailureMessage>Receiver Temperature outside limits</FailureMessage>" + "</Expected>" + "</Element>" + "<Element>" + "<KeyExpression>value like 'DCARD:*'</KeyExpression>" + "<Expected Trim=\"true\">" + "<Expression>value lenge 24</Expression>" + "<Expression>value validesn</Expression>" + "<Expression>value not same</Expression>" + "<Destination>" + "<Name></Name>" + "<Default></Default>" + "</Destination>" + "<FailureMessage>Receiver Temperature outside limits</FailureMessage>" + "</Expected>" + "</Element>" + "<Element>" + "<KeyExpression>value like 'EBOARD:*'</KeyExpression>" + "<Expected Trim=\"false\">" + "<Expression>value lenge 24</Expression>" + "<Destination>" + "<Name></Name>" + "<Default></Default>" + "</Destination>" + "<FailureMessage>Receiver Temperature outside limits</FailureMessage>" + "</Expected>" + "</Element>" + "<Element>" + "<KeyExpression>value like 'CUSTESN:*'</KeyExpression>" + "<Expected Trim=\"true\">" + "<Expression>value lenge 15</Expression>" + "<Destination>" + "<Name></Name>" + "<Default></Default>" + "</Destination>" + "<FailureMessage>Receiver Temperature outside limits</FailureMessage>" + "</Expected>" + "</Element>" + "<Element>" + "<KeyExpression>value like 'TPESN:*'</KeyExpression>" + "<Expected Trim=\"true\">" + "<Expression>value lenge 24</Expression>" + "<Destination>" + "<Name></Name>" + "<Default></Default>" + "</Destination>" + "<FailureMessage>Receiver Temperature outside limits</FailureMessage>" + "</Expected>" + "</Element>" + "</Response>" + "<Timeout>180</Timeout>" + "<BeginState>BOOT</BeginState>" + "<EndState>DSHELL</EndState>" + "<Retries>0</Retries>" + "</Step>" + "</Test>" + "</TestSet>" + "</TestSets>"); TestSets collections = Hydrator.Hydrate("Test", exerpt); ResponseProcessor.Process("First Test", collections["Bootup"]["1A"].Steps[0], "ESN: " + "\n" + "GBE_CTLR: NOT INSTALLED " + "\n" + "GBE_LNA: NOT INSTALLED " + "\n" + "GBE: NOT INSTALLED " + "\n" + "GBE CUST ESN: NOT INSTALLED " + "\n" + "GPS RCVR: 06162200D010082006501DA6 " + "\n" + "RECEIVER: 06163900B0100820070403C2 " + "\n" + "BDC: 06164000C11008200704063B " + "\n" + "PSUPPLY: 06163400G0100820064300C1 " + "\n" + "CP/DSP: 06164100B1100820064700C2 " + "\n" + "DCARD: 06160301B010082006440005 " + "\n" + "EBOARD: NOT INSTALLED " + "\n" + "CUSTESN: TRULMU5207872AE " + "\n" + "TEMPERATURES: recvr 31 bdc 28 power supply 35" + "\n" + "TPESN: 06630000D010082007050130"); //element.Save(@"C:\Development\Kapsoft\True Position\Documents\COCommandTest.xml"); }
private bool CreateTests() { var D = new TestRunner(Automaton); var b = D.ShowDialog(); if (b.HasValue && b.Value) { Set = D.Set; return true; } return false; }
public void NestedChildTablesWithBatchingInCsv() { var csvDir = Path.Combine(Directory.GetCurrentDirectory(), "~tmp"); if (Directory.Exists(csvDir)) { Directory.Delete(csvDir, true); } var csv = new CsvExporter(csvDir, binaryPartitions: true); var batchWriter = new TableDataBatchWriter(csv); //1000 visits. //1 row in Test per visit //3 rows in Events per visit //3 rows in Pages per visit //1 row in Pages2 per visit //-------------------------- //8 rows per visit = 80000 in total //Batch size 26672 (ceiling(1000/3) visits) gives two disk partitions with 26672 and one with 26656 in memory var visitCount = 1000; var rowsPerVisit = 8; var visitPerBatch = (int)Math.Ceiling(visitCount / 3d); var rowsPerFilePartition = visitPerBatch * rowsPerVisit; var eventRowsPerVisit = 3; var expectedFilePartitions = 2; var tables = TestSets.Countries(visitCount, 37).Process( () => new SimpleTableMapper(new TableDefinition("Test") .Key("VisitId", s => s.Current <IVisitAggregationContext>().Visit.InteractionId) .Fact("Value", s => s.Current <IVisitAggregationContext>().Visit.Value) .Map(s => s.Current <IVisitAggregationContext>().Visit.Pages, new TableDefinition("Pages") .Key("PageId", s => s.Current <PageData>().Item.Id) .Fact("Value", s => s.Current <PageData>().PageEvents.Sum(pe => pe.Value)) .Map(s => s.Current <PageData>().PageEvents, new TableDefinition("Events") .Dimension("Event", s => s.Current <PageEventData>().PageEventDefinitionId) .Fact("Value", s => s.Current <PageEventData>().Value))) .Map(s => new[] { s.Current <IVisitAggregationContext>().Visit.Pages.First() }, new TableDefinition("Pages2") .Key("Id", s => s.Current <PageData>().Item.Id))), initializer: p => { p.BatchWriter = batchWriter; p.BatchSize = rowsPerFilePartition; }); var partitions = new DirectoryInfo(csvDir).GetDirectories().Length; Assert.AreEqual(2, partitions, string.Format("{0:N0} rows should create 2 file partitions and one in memory", visitCount * rowsPerVisit)); Assert.AreEqual(expectedFilePartitions * eventRowsPerVisit * visitPerBatch, batchWriter.Tables.FirstOrDefault(t => t.Schema.Name == "Events").Rows.Count(), string.Format("{0:N0} rows in event tables in file partitions", expectedFilePartitions * eventRowsPerVisit * visitPerBatch)); Assert.AreEqual(expectedFilePartitions * rowsPerVisit * visitPerBatch, batchWriter.Tables.Sum(t => t.Rows.Count()), string.Format("{0:N0} total rows in file partitions", expectedFilePartitions * rowsPerVisit * visitPerBatch)); Assert.AreEqual(visitCount * rowsPerVisit, tables.Sum(t => t.Rows.Count()), string.Format("{0:N0} rows in file + memory partitions", visitCount * rowsPerVisit)); //Merge partitions tables = csv.Export(tables); //Delete partitions batchWriter.Dispose(); partitions = new DirectoryInfo(csvDir).GetDirectories().Length; Assert.AreEqual(0, partitions, "Temporary partition directories are deleted"); var visits = tables.FirstOrDefault(t => t.Schema.Name == "Test"); var pages = tables.FirstOrDefault(t => t.Schema.Name == "Pages"); var pages2 = tables.FirstOrDefault(t => t.Schema.Name == "Pages2"); var events = tables.FirstOrDefault(t => t.Schema.Name == "Events"); Assert.AreEqual(1000, visits.Rows.Count()); Assert.AreEqual(14000, visits.Fields <int>("Value").Sum()); Assert.AreEqual(14000, pages.Fields <int>("Value").Sum()); Assert.AreEqual(14000, events.Fields <int>("Value").Sum()); Assert.AreEqual(3000, pages.Rows.Count()); Assert.AreEqual(3000, events.Rows.Count()); Assert.AreEqual(1000, pages2.Rows.Count()); if (Directory.Exists(csvDir)) { Directory.Delete(csvDir, true); } }