Пример #1
0
        /// <summary>
        /// Finds good matches from a list of people who meet the criteria
        /// </summary>
        private static List <CompatibilityReport> FindGoodMatches(List <Person> peopleList)
        {
            //from a list of people find good matches

            //split the sexes
            var femaleList = peopleList.FindAll(person => person.GetGender() == Gender.Female);
            var maleList   = peopleList.FindAll(person => person.GetGender() == Gender.Male);

            var goodReports = new List <CompatibilityReport>();

            //cross reference male & female list
            foreach (var female in femaleList)
            {
                foreach (var male in maleList)
                {
                    var report = MatchCalculator.GetCompatibilityReport(male, female);
                    //if report meets criteria save it
                    if (report.KutaScore > 50)
                    {
                        goodReports.Add(report);
                    }
                }
            }

            //return reports that got saved
            return(goodReports);
        }
Пример #2
0
        private static List <CompatibilityReport> GetAllMatchesForPersonByStrength(Person inputPerson, List <Person> personList)
        {
            var returnList = new List <CompatibilityReport>();


            //this makes sure each person is cross checked against this person correctly
            foreach (var personMatch in personList)
            {
                //get needed details
                var inputPersonIsMale   = inputPerson.GetGender() == Gender.Male;
                var inputPersonIsFemale = inputPerson.GetGender() == Gender.Female;
                var personMatchIsMale   = personMatch.GetGender() == Gender.Male;
                var personMatchIsFemale = personMatch.GetGender() == Gender.Female;

                if (inputPersonIsMale && personMatchIsFemale)
                {
                    //add report to list
                    var report = MatchCalculator.GetCompatibilityReport(inputPerson, personMatch);
                    returnList.Add(report);
                }

                if (inputPersonIsFemale && personMatchIsMale)
                {
                    //add report to list
                    var report = MatchCalculator.GetCompatibilityReport(personMatch, inputPerson);
                    returnList.Add(report);
                }
            }


            //order the list by strength, highest at 0 index
            var SortedList = returnList.OrderBy(o => o.KutaScore).ToList();

            return(SortedList);
        }
Пример #3
0
    // Use this for initialization
    void Start()
    {
        ingredientSelector = FindObjectOfType <IngredientSelector>();
        matchCalculator    = MatchCalculator.matchCalculator;
        float targetGemWidth = boardWidth / width;

        bELibrary = LibraryManager.instance.get <BELibrary>();

        RectTransform rt           = (RectTransform)availibleGems[0].gameObject.transform;
        float         tempGemWidth = rt.rect.width;

        beScalar = targetGemWidth / tempGemWidth;
        foreach (IBoardEntity be in availibleGems)
        {
            be.gameObject.transform.localScale = new Vector2(beScalar, beScalar);
        }

        gemWidth  = targetGemWidth;
        gemHeight = targetGemWidth;

        selectedIngredient           = null;
        DayManager.dayManager.start += () => {
            populateBoard();
            unlockBoard();
            //checkMatchesAfterHelper(1);
        };
        DayManager.dayManager.end += () => {
            clearBoard();
            started = false;
        };
    }
Пример #4
0
        static void Main(string[] args)
        {
            int intNoOfTestcases;

            long[] lngNoOfTeamsParticipating;

            intNoOfTestcases = Convert.ToInt32(Console.ReadLine());
            if (intNoOfTestcases < 1 || intNoOfTestcases > 100)
            {
                Console.WriteLine("No. of test cases should be between 1 to 100");
            }
            else
            {
                lngNoOfTeamsParticipating = new long[intNoOfTestcases];

                for (int counter = 0; counter < intNoOfTestcases; counter++)
                {
                    lngNoOfTeamsParticipating[counter] = Convert.ToInt64(Console.ReadLine());
                }
                MatchCalculator mc = new MatchCalculator();
                for (int counter = 0; counter < intNoOfTestcases; counter++)
                {
                    Console.WriteLine(mc.CalculateMatches(lngNoOfTeamsParticipating[counter]));
                }
            }
            Console.ReadKey();
        }
Пример #5
0
        public static CompatibilityReport GetCompatibilityReport(string maleName, string femaleName, Data personList)
        {
            //get all the people
            var peopleList = DatabaseManager.GetPersonList(personList);

            //filter out the male and female ones we want
            var male   = peopleList.Find(person => person.GetName() == maleName);
            var female = peopleList.Find(person => person.GetName() == femaleName);

            return(MatchCalculator.GetCompatibilityReport(male, female));
        }
Пример #6
0
        private static void PrintOneVsOne(Person male, Person female)
        {
            var report = MatchCalculator.GetCompatibilityReport(male, female);

            var maleName   = male.GetName();
            var femaleName = female.GetName();

            printResult(ref report);



            //FUNCTIONS
            void printResult(ref CompatibilityReport report)
            {
                var list = report.PredictionList;

                //print header
                var maleYear   = male.GetBirthDateTime().GetStdDateTimeOffset().Year;
                var femaleYear = female.GetBirthDateTime().GetStdDateTimeOffset().Year;

                Console.WriteLine($"{maleName}-{maleYear} <> {femaleName}-{femaleYear}");
                Console.WriteLine("Name#Nature#Description#Extra Info#Male#Female#");

                //print rows
                foreach (var prediction in list)
                {
                    //if prediction is empty, than skip it
                    if (prediction.Name == Name.Empty)
                    {
                        continue;
                    }
                    Console.WriteLine($"{prediction.Name}#{prediction.Nature}#{prediction.Description}#{prediction.Info}#{prediction.MaleInfo}#{prediction.FemaleInfo}");
                }

                Console.WriteLine($"Total Score#{getScoreGrade(report.KutaScore)}#Total score must be above 50%#Score: {report.KutaScore}/100##");

                Console.ReadLine();
            }
        }
Пример #7
0
 void Awake()
 {
     matchCalculator = this;
 }
Пример #8
0
        public void Setup()
        {
            _mockSetCalculator = Substitute.For <ISetCalculator>();

            _sut = new MatchCalculator(_mockSetCalculator);
        }