private static void Run(Options opt) { var startup = new Startup( new FileWrapper() ); var filePath = startup.GetPathInProject(opt.FileName); IBlobCounterWrapper blobCounterWrapper = new BlobCounterWrapper(); ISimpleShapeCheckerWrapper simpleShapeCheckerWrapper = new SimpleShapeCheckerWrapper(); IColorFilteringWrapper colorFilteringWrapper = new ColorFilteringWrapper(); IPostItAnalysis postItAnalysis = new PostItAnalysis(blobCounterWrapper, simpleShapeCheckerWrapper, colorFilteringWrapper); ICountByColor countByColor = new CountByColor(postItAnalysis); try { if (startup.VerifyFile(filePath)) { var resultsGetter = new ResultsGetter(countByColor); var result = resultsGetter.Get(filePath); var resultsPrinter = new ResultsPrinter(); resultsPrinter.Print(result); } } catch (ArgumentException e) { Console.WriteLine(e.Message); } }
public void GettingWinnerBySearchEngineReturnsExpectedLinesForMultipleSearchTerms() { //Arrange var searchResults = new List <SearchResult> { new SearchResult { SearchEngineUsed = "Google", NumberOfResults = 1000, ProgrammingLanguage = ".net" }, new SearchResult { SearchEngineUsed = "MSN Search", NumberOfResults = 2001, ProgrammingLanguage = ".net" }, new SearchResult { SearchEngineUsed = "Google", NumberOfResults = 1001, ProgrammingLanguage = "java" }, new SearchResult { SearchEngineUsed = "MSN Search", NumberOfResults = 2000, ProgrammingLanguage = "java" } }; //Act var lines = ResultsPrinter.GetWinnerBySearchEngine(searchResults); //Assert var expectedLines = new List <string> { "Google winner: java", "MSN Search winner: .net" }; Assert.IsTrue(lines.Intersect(expectedLines).Count() == lines.Count()); }
public async Task Handle(ConfigOptions options) { var request = MapOptionsToRequest(options); var result = await _whenAuthorize.ThenAsync(request).ConfigureAwait(false); ResultsPrinter.Print(result); }
private static void PrintRecs(MalRecResults <IEnumerable <RecEngine.IRecommendation> > recs, IDictionary <int, RecEngine.MAL.MalListEntry> animeList, decimal targetScore) { if (!recs.Results.Any()) { Console.WriteLine("No recommendations."); return; } ResultsPrinter resultsPrinter = new ResultsPrinter(); resultsPrinter.PrintResults(recs, animeList, targetScore); }
public async Task Handle(ServerListOptions options) { ServerList servers = new ServerList(); if (options.Local == false) { var request = new GetServerList(); servers = await _whenGetServerList.ThenAsync(request).ConfigureAwait(false); } if (options.Local) { var request = new GetLocalServerList(); servers = await _whenGetLocalServerList.ThenAsync(request).ConfigureAwait(false); } ResultsPrinter.Print(servers); }
static void Main(string[] programmingLanguages) { //Resolve Dependencies var container = SearchFightContainer.BuildContainer(); var queryMaker = container.GetInstance <IQueryMaker>(); //Call Controller try { var searchFightCon = new SearchFightController(queryMaker); var viewModel = searchFightCon.StartSearchFight(programmingLanguages); ResultsPrinter.Print(viewModel); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
public void GettingResultsByProgrammingLanguageReturnsExpectedLineForOneSearchTerm() { //Arrange var searchResults = new List <SearchResult> { new SearchResult { SearchEngineUsed = "Google", NumberOfResults = 1000, ProgrammingLanguage = ".net" }, new SearchResult { SearchEngineUsed = "MSN Search", NumberOfResults = 2000, ProgrammingLanguage = ".net" } }; //Act var lines = ResultsPrinter.GetResultsByProgrammingLanguage(searchResults); //Assert var expectedLine = ".net: Google: 1000 MSN Search: 2000 "; foreach (var line in lines) { Assert.AreEqual(line, expectedLine); } }
/* * FeatureFactory class to use for generating features from relations for relation extraction. * Default is "edu.stanford.nlp.ie.machinereading.RelationFeatureFactory" */ //private Class<RelationFeatureFactory> relationFeatureFactoryClass = edu.stanford.nlp.ie.machinereading.RelationFeatureFactory.class; /* * comma-separated list of feature types to generate for relation extraction */ //private String relationFeatures; public override void PrintResults(PrintWriter pw, IList <ICoreMap> goldStandard, IList <ICoreMap> extractorOutput) { featureFactory = MachineReading.MakeRelationFeatureFactory(MachineReadingProperties.relationFeatureFactoryClass, MachineReadingProperties.relationFeatures, false); mentionFactory = new RelationMentionFactory(); // generic mentions work well in this domain ResultsPrinter.Align(goldStandard, extractorOutput); IList <RelationMention> relations = new List <RelationMention>(); IDictionary <RelationMention, string> predictions = new Dictionary <RelationMention, string>(); for (int i = 0; i < goldStandard.Count; i++) { IList <RelationMention> goldRelations = AnnotationUtils.GetAllRelations(mentionFactory, goldStandard[i], true); Sharpen.Collections.AddAll(relations, goldRelations); foreach (RelationMention rel in goldRelations) { predictions[rel] = AnnotationUtils.GetRelation(mentionFactory, extractorOutput[i], rel.GetArg(0), rel.GetArg(1)).GetType(); } } ICounter <Pair <Pair <string, string>, string> > pathCounts = new ClassicCounter <Pair <Pair <string, string>, string> >(); foreach (RelationMention rel_1 in relations) { pathCounts.IncrementCount(new Pair <Pair <string, string>, string>(new Pair <string, string>(rel_1.GetArg(0).GetType(), rel_1.GetArg(1).GetType()), featureFactory.GetFeature(rel_1, "dependency_path_lowlevel"))); } ICounter <string> singletonCorrect = new ClassicCounter <string>(); ICounter <string> singletonPredicted = new ClassicCounter <string>(); ICounter <string> singletonActual = new ClassicCounter <string>(); foreach (RelationMention rel_2 in relations) { if (pathCounts.GetCount(new Pair <Pair <string, string>, string>(new Pair <string, string>(rel_2.GetArg(0).GetType(), rel_2.GetArg(1).GetType()), featureFactory.GetFeature(rel_2, "dependency_path_lowlevel"))) == 1.0) { string prediction = predictions[rel_2]; if (prediction.Equals(rel_2.GetType())) { singletonCorrect.IncrementCount(prediction); } singletonPredicted.IncrementCount(prediction); singletonActual.IncrementCount(rel_2.GetType()); } } // Group together actual relations of a type with relations that were // predicted to be that type // String rel1group = RelationsSentence.isUnrelatedLabel(rel1.getType()) // ? prediction1 : rel1.getType(); // String rel2group = RelationsSentence.isUnrelatedLabel(rel2.getType()) // ? prediction2 : rel2.getType(); // int groupComp = rel1group.compareTo(rel2group); // int pathComp = // getFeature(rel1,"generalized_dependency_path").compareTo(getFeature(rel2,"generalized_dependency_path")); // } else if (pathComp != 0) { // return pathComp; _T1018869951 relComp = new _T1018869951(this); relations.Sort(relComp); foreach (RelationMention rel_3 in relations) { string prediction = predictions[rel_3]; // if (RelationsSentence.isUnrelatedLabel(prediction) && // RelationsSentence.isUnrelatedLabel(rel.getType())) { // continue; // } string type1 = rel_3.GetArg(0).GetType(); string type2 = rel_3.GetArg(1).GetType(); string path = featureFactory.GetFeature(rel_3, "dependency_path_lowlevel"); if (!((type1.Equals("PEOPLE") && type2.Equals("PEOPLE")) || (type1.Equals("PEOPLE") && type2.Equals("LOCATION")) || (type1.Equals("LOCATION") && type2.Equals("LOCATION")) || (type1.Equals("ORGANIZATION") && type2.Equals("LOCATION")) || (type1 .Equals("PEOPLE") && type2.Equals("ORGANIZATION")))) { continue; } if (path.Equals(string.Empty)) { continue; } pw.Println("\nLABEL: " + prediction); pw.Println(rel_3); pw.Println(path); pw.Println(featureFactory.GetFeatures(rel_3, "dependency_path_words")); pw.Println(featureFactory.GetFeature(rel_3, "surface_path_POS")); } }
public static void Main(string[] args) { Logger.Info("Application Started"); if (!string.IsNullOrEmpty(ConfigurationManager.AppSettings["csvpath"].ToString())) { CsvImporter.CsvPath = ConfigurationManager.AppSettings["csvpath"].ToString(); } if (!string.IsNullOrEmpty(ConfigurationManager.AppSettings["jsonpath"].ToString())) { JsonOverrideFactory.JsonPath = ConfigurationManager.AppSettings["jsonpath"].ToString(); } var categories = new CategoryCreator() .SetRawPath("Events.csv") .SetOverrideFactory("events.json") .Create(); var athletes = new AthleteCreator() .SetRawPath("Competitors.csv") .SetOverrideFactory("athletes.json") .Create(); var clubs = new ClubCreator(athletes).SetOverrideFactory("clubs.json").Create(); AthleteClubMapper.Map(athletes, clubs); var startpositions = new StartPositionFactory("startpositions.json").Create(); var crews = new CrewCreator(categories, clubs, startpositions, athletes) .SetRawPath("Crews.csv") .SetOverrideFactory("crews.json") .Create() .OrderBy(cr => cr.StartNumber) .ToList(); // todo - this is almost certainly not the best place to do this var bandProportions = ConfigurationManager.AppSettings["OpenBands"].Split(',').Select(i => Int32.Parse(i)).ToList(); foreach (Gender gender in (Gender[])Enum.GetValues(typeof(Gender))) { var openBands = categories.Where(cat => cat is EventCategory).Select(c => (EventCategory)c).Where(c => c.Gender == gender && c.UseForCRI).Select(c => c.EventId).ToList(); IList <Func <List <int> > > del = new List <Func <List <int> > > { () => crews.Where(cr => cr.Gender == gender).Select(cr => cr.CRI(false)).ToList(), () => crews.Where(crew => categories.Where(cat => cat is EventCategory).Select(c => (EventCategory)c).Where(c => c.Gender == gender && c.UseForCRI).Select(c => c.EventId).Contains(crew.EventCategory.EventId)).Select(cr => cr.CRI(false)).ToList() }; foreach (var fn in del) { var crisToInclude = fn(); // crews.Where(crew => openBands.Contains(crew.EventCategory.EventId)).Select(cr => cr.CRI).ToList(); crisToInclude.Sort(); if (crisToInclude.Count > 0) { Logger.DebugFormat("{0} crews [#{2}] {1}", gender, crisToInclude.Select(c => c.ToString()).Aggregate((h, t) => String.Format("{0}, {1}", h, t)), crisToInclude.Count); int tally = 0; int lower = 0; for (int i = 0; i < bandProportions.Count; i++) { tally += bandProportions[i]; int upper = i + 1 == bandProportions.Count ? crisToInclude.Count - 1 : 1 + (int)Math.Floor((decimal)crisToInclude.Count * tally / 100); Logger.DebugFormat("Band {0} [{1}, {2}{4}. #{3} ", i + 1, crisToInclude[lower], crisToInclude[upper], (i + 1 == bandProportions.Count ? 1 : 0) + upper - lower, i + 1 < bandProportions.Count ? ")" : "]"); // crisToInclude[mag-1], crisToInclude[mag]); lower = upper; } foreach (var b in new List <bool> { true, false }) { Logger.InfoFormat("Correlation between CRI{2} and points ({1}): {0}", PearsonCorrelation(crews.Where(cr => cr.Gender == gender).Select(cr => (double)cr.CRI(b)).ToList(), crews.Where(cr => cr.Gender == gender).Select(cr => (double)cr.Points).ToList()), gender, b ? "Max" : ""); } } } } foreach (var b in new List <bool> { true, false }) { Logger.InfoFormat("Correlation between CRI{1} and points (all): {0}", PearsonCorrelation(crews.Select(cr => (double)cr.CRI(b)).ToList(), crews.Select(cr => (double)cr.Points).ToList()), b ? "Max" : ""); } CategoryCrewMapper.Map(categories, crews); // TODO: move results into the config file? if (args.Count() == 0 || args[0].ToLowerInvariant() != "results") { StartPositionGenerator.Generate(crews); bool valid = new CrewValidator(athletes).Validate(crews) && new ClubValidator().Validate(clubs) && new AthleteValidator().Validate(athletes) && new CategoryValidator().Validate(categories); if (!valid) { return; } } else { var starttimes = new SequenceItemFactory("start-times.json").Create(); var finishtimes = new SequenceItemFactory("finish-times.json").Create(); var penalties = new PenaltyFactory("penalties.json").Create(); var adjustments = new AdjustmentFactory("adjustments.json").Create(); // todo - is there a weighed in file? TimeMapper.Map(crews, starttimes, finishtimes); TimeMapper.Penalise(crews, penalties); TimeMapper.Adjust(crews, adjustments); CategoryResultsGenerator.Generate(categories); ResultsPrinter.Dump(crews); } Logger.Info("Application stopped."); }