Exemple #1
0
        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());
        }
Exemple #3
0
        public async Task Handle(ConfigOptions options)
        {
            var request = MapOptionsToRequest(options);
            var result  = await _whenAuthorize.ThenAsync(request).ConfigureAwait(false);

            ResultsPrinter.Print(result);
        }
Exemple #4
0
        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);
            }
        }
Exemple #8
0
        /*
         * 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.");
        }