/// <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); }
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); }
// 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; }; }
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(); }
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)); }
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(); } }
void Awake() { matchCalculator = this; }
public void Setup() { _mockSetCalculator = Substitute.For <ISetCalculator>(); _sut = new MatchCalculator(_mockSetCalculator); }