public static int Main(string[] args) { try { Configuration c = new Configuration(args); c.CheckValid(); foreach (string s in c.Files) { try { string fileName = Path.GetFileNameWithoutExtension(s); string outputFileName = Path.Combine(c.OutputDir, fileName + ".cs"); new XmlParser(s).Generate(outputFileName); } catch (Exception ex) { Console.Error.WriteLine("Error in [{0}]: {1} ", s, ex.Message); } } SummaryGenerator.Write(c.OutputDir); return(0); } catch (Exception ex) { Console.Error.WriteLine(ex.Message); return(1); } }
public Measurement ReadMeasurement(MeasurementFile measurementFile) { var ticketFile = BillettServiceXmlFile.LoadFile(measurementFile.FullPath); if (ticketFile == null) { return(null); } var summary = new SummaryGenerator().CreateSummary(ticketFile); Measurement measurement = new Measurement { MeasurementTime = measurementFile.MeasurementTime, AmountSold = summary.ContainsKey(SeatStatus.Sold) ? summary[SeatStatus.Sold] : 0, AmountSeasonTicket = summary.ContainsKey(SeatStatus.SeasonTicket) ? summary[SeatStatus.SeasonTicket] : 0, AmountAvailable = summary.ContainsKey(SeatStatus.AvailableForPurchase) ? summary[SeatStatus.AvailableForPurchase] : 0, AmountReserved = summary.ContainsKey(SeatStatus.Reserved) ? summary[SeatStatus.Reserved] : 0, AmountUnavailable = summary.ContainsKey(SeatStatus.Unavailable) ? summary[SeatStatus.Unavailable] : 0, AmountTicketMaster = summary.ContainsKey(SeatStatus.HeldByTicketMasterApplication) ? summary[SeatStatus.HeldByTicketMasterApplication] : 0, AmountUnknown = summary.ContainsKey(SeatStatus.Unknown) ? summary[SeatStatus.Unknown] : 0 }; return(measurement); }
public void GroupMatchPositions() { IDictionary <string, IEnumerable <int> > matchPositions = new Dictionary <string, IEnumerable <int> > { { "ala", new List <int> { 0, 20, 100 } }, { "ma", new List <int> { 10, 30 } }, { "kota", new List <int> { 5, 40, 80 } } }; List <PositionTextPairGroup> groups = SummaryGenerator.GroupMatchPositions(matchPositions, 0); Assert.AreEqual(8, groups.Count); Assert.IsTrue(groups.All(group => group.pairs.Count == 1)); Assert.AreEqual(3, groups.Count(group => group.pairs.First().text == "ala")); Assert.AreEqual(2, groups.Count(group => group.pairs.First().text == "ma")); Assert.AreEqual(3, groups.Count(group => group.pairs.First().text == "kota")); groups = SummaryGenerator.GroupMatchPositions(matchPositions, 10); Assert.AreEqual(2, groups.Count); Assert.AreEqual(6, groups[0].pairs.Count); Assert.AreEqual(2, groups[1].pairs.Count); }
public void GenerateContext() { int contextSizeChars = 5; List <PositionTextPairGroup> groups = new List <PositionTextPairGroup> { new PositionTextPairGroup(new PositionTextPair(0, "ala"), contextSizeChars) .Extend(new PositionTextPair(5, "ma"), contextSizeChars), new PositionTextPairGroup(new PositionTextPair(20, "ala"), contextSizeChars) .Extend(new PositionTextPair(23, "ma"), contextSizeChars) .Extend(new PositionTextPair(24, "ala"), contextSizeChars) .Extend(new PositionTextPair(30, "kota"), contextSizeChars) }; StreamReader reader = new StreamReader(new MemoryStream( Encoding.UTF8.GetBytes("ala12ma1234567890123alamala123kota1234567890"))); Mock <IDocumentBuilder> builder = mockFactory.CreateMock <IDocumentBuilder>(); builder.Expects.One .Method(b => b.BeginContextBlock()); builder.Expects.One .Method(b => b.EndContextBlock()); builder.Expects.AtMostOne .Method(b => b.AddContextText(null, TextStyle.Normal)) .With("", TextStyle.Normal); builder.Expects.One .Method(b => b.AddContextText(null, TextStyle.Normal)) .With("ala", TextStyle.Bold); builder.Expects.One .Method(b => b.AddContextText(null, TextStyle.Normal)) .With("12", TextStyle.Normal); builder.Expects.One .Method(b => b.AddContextText(null, TextStyle.Normal)) .With("ma", TextStyle.Bold); builder.Expects.One .Method(b => b.AddContextText(null, TextStyle.Normal)) .With("12345", TextStyle.Normal); builder.Expects.One .Method(b => b.AddContextText(null, TextStyle.Normal)) .With("90123", TextStyle.Normal); builder.Expects.One .Method(b => b.AddContextText(null, TextStyle.Normal)) .With("alamala", TextStyle.Bold); builder.Expects.One .Method(b => b.AddContextText(null, TextStyle.Normal)) .With("123", TextStyle.Normal); builder.Expects.One .Method(b => b.AddContextText(null, TextStyle.Normal)) .With("kota", TextStyle.Bold); builder.Expects.One .Method(b => b.AddContextText(null, TextStyle.Normal)) .With("12345", TextStyle.Normal); builder.Expects.One .Method(b => b.AddContextText(null, TextStyle.Normal)) .With(" ... ", TextStyle.Normal); builder.Expects.One .Method(b => b.AddContextText(null, TextStyle.Normal)) .With(" ...", TextStyle.Normal); SummaryGenerator.GenerateContext(builder.MockObject, groups, reader); }
public void SummaryGenerator_should_be_thread_safe() { var writer = MockRepository.GenerateMock <ISummaryWriter>(); var subject = new SummaryGenerator(writer); Enumerable.Range(0, _elementsCount) .Select(i => MockRepository.GenerateMock <IFeatureResult>()) .ToArray() .AsParallel() .ForAll(subject.AddFeature); subject.Finished(); writer.AssertWasCalled(w => w.Save(Arg <IFeatureResult[]> .Matches(r => r.Length == _elementsCount))); }
public SummaryGenerator_Tests() { var testClockProvider = new TestClockProvider(); testClockProvider.Now = new DateTime(2020, 4, 1); _summaryGenerator = new SummaryGenerator(testClockProvider); _crawlerMeta = new[] { new CrawlerMetaItem { CrawlerName = "cr1", CrawlerTitle = "Cr1", Url = "", CrawlerDescription = "", IsVirtualJudge = false, }, new CrawlerMetaItem { CrawlerName = "cr2", CrawlerTitle = "Cr2", Url = "", CrawlerDescription = "", IsVirtualJudge = false, }, new CrawlerMetaItem { CrawlerName = "cr3", CrawlerTitle = "Cr3", Url = "", CrawlerDescription = "", IsVirtualJudge = true, }, new CrawlerMetaItem { CrawlerName = "cr4", CrawlerTitle = "Cr4", Url = "", CrawlerDescription = "", IsVirtualJudge = true, }, }; }
public void Generate() { Mock <IDocumentBuilder> builder = mockFactory.CreateMock <IDocumentBuilder>(); builder.Expects.One .Method(b => b.AddReportHeader(new DateTime(), null, null)) .WithAnyArguments(); builder.Expects.AtLeast(2) .Method(b => b.AddSectionHeader(null)) .WithAnyArguments(); builder.Expects.Exactly(matchingFiles.Count) .Method(b => b.AddSearchResult(new SearchResult())) .WithAnyArguments(); builder.Expects.One .Method(b => b.AddReportFooter()); builder.Expects.One .Method(b => b.Save(null)) .With(outputFilename); builder.Expects.Exactly(matchingFiles.Count) .Method(b => b.BeginContextBlock()); builder.Expects.Exactly(matchingFiles.Count) .Method(b => b.EndContextBlock()); builder.Expects.Exactly(matchingFiles.Count) .Method(b => b.AddContextText(null, TextStyle.Normal)) .With("string", TextStyle.Bold); builder.Expects.Exactly(matchingFiles.Count) .Method(b => b.AddContextText(null, TextStyle.Normal)) .With("... ", TextStyle.Normal); builder.Expects.Exactly(matchingFiles.Count * 2) .Method(b => b.AddContextText(null, TextStyle.Normal)) .With(" ... ", TextStyle.Normal); builder.Expects.Exactly(matchingFiles.Count) .Method(b => b.AddContextText(null, TextStyle.Normal)) .With(" ...", TextStyle.Normal); SummaryGenerator generator = new SummaryGenerator(); ReportOptions options = new ReportOptions(); options.outputFilePath = outputFilename; options.contextSizeChars = 0; generator.Generate(builder.MockObject, options, searchQuery, inputPaths, matchingFiles); }
public void Generate() { Mock<IDocumentBuilder> builder = mockFactory.CreateMock<IDocumentBuilder>(); builder.Expects.One .Method(b => b.AddReportHeader(new DateTime(), null, null)) .WithAnyArguments(); builder.Expects.AtLeast(2) .Method(b => b.AddSectionHeader(null)) .WithAnyArguments(); builder.Expects.Exactly(matchingFiles.Count) .Method(b => b.AddSearchResult(new SearchResult())) .WithAnyArguments(); builder.Expects.One .Method(b => b.AddReportFooter()); builder.Expects.One .Method(b => b.Save(null)) .With(outputFilename); builder.Expects.Exactly(matchingFiles.Count) .Method(b => b.BeginContextBlock()); builder.Expects.Exactly(matchingFiles.Count) .Method(b => b.EndContextBlock()); builder.Expects.Exactly(matchingFiles.Count) .Method(b => b.AddContextText(null, TextStyle.Normal)) .With("string", TextStyle.Bold); builder.Expects.Exactly(matchingFiles.Count) .Method(b => b.AddContextText(null, TextStyle.Normal)) .With("... ", TextStyle.Normal); builder.Expects.Exactly(matchingFiles.Count * 2) .Method(b => b.AddContextText(null, TextStyle.Normal)) .With(" ... ", TextStyle.Normal); builder.Expects.Exactly(matchingFiles.Count) .Method(b => b.AddContextText(null, TextStyle.Normal)) .With(" ...", TextStyle.Normal); SummaryGenerator generator = new SummaryGenerator(); ReportOptions options = new ReportOptions(); options.outputFilePath = outputFilename; options.contextSizeChars = 0; generator.Generate(builder.MockObject, options, searchQuery, inputPaths, matchingFiles); }
static void Main(string[] args) { var(inputFile, outputFile, T1_THRESHOLD, typeToGenerate) = CommandLineParams.Parse(args); Console.WriteLine($"{inputFile} {outputFile} {T1_THRESHOLD} {typeToGenerate}"); var players = new List <Player>(); using (var textReader = File.OpenText("../../../raw_data/parsed_fifa.csv")) { CsvReader csvReader = new CsvReader(textReader); csvReader.Configuration.Delimiter = ","; csvReader.Configuration.MissingFieldFound = null; int i = 0; while (csvReader.Read()) { Player player = csvReader.GetRecord <Player>(); players.Add(player); i++; } } var(quants, quals, summs, logicalOperation) = FuzzySetParser.ParseFuzzySetFile(players.Count, inputFile); List <LinguisticSummary> summaries; if (typeToGenerate == SummaryType.First) { summaries = SummaryGenerator.GetFirstTypeSummaries(quants, summs, players, logicalOperation); } else { summaries = SummaryGenerator.GetSecondTypeSummaries(quants, summs, players, quals, logicalOperation); } SummaryResultWriter.Write( summaries.Select(sum => (sum, new QualityMeasures().CalculateAll(sum))) .Where(t1 => t1.Item2.T1 > T1_THRESHOLD), outputFile); }
public string CreateCountSummary(BillettServiceXmlFile ticketFile) { var stats = new SummaryGenerator().CreateSummary(ticketFile); var builder = new StringBuilder(); var sum = 0; var tilskuere = 0; foreach (var kvp in stats) { builder.AppendLine(kvp.Key.ToString().PadRight(30) + kvp.Value.ToString().PadLeft(5)); sum += kvp.Value; if (kvp.Key == SeatStatus.Sold || kvp.Key == SeatStatus.SeasonTicket) { tilskuere += kvp.Value; } } builder.AppendLine("-----------------------------------"); builder.AppendLine("Tilskuere " + tilskuere.ToString().PadLeft(5)); builder.AppendLine("Totale seter " + sum.ToString().PadLeft(5)); return(builder.ToString()); }
public void SetUp() { _writer = MockRepository.GenerateMock <ISummaryWriter>(); _subject = new SummaryGenerator(_writer); }