private void sortPlayers(POSITIONS pos, List <Player> players) { IRankDefScorer scorer = RankDepthFactory.createDepthFactory(RankDepthFactory.DEPTH_ALGO.READ); // IRankDefScorer scorer = RankDepthFactory.createDepthFactory(RankDepthFactory.DEPTH_ALGO.SOMWORD); players.Sort(delegate(Player p1, Player p2) { double p1Score = 0; double p2Score = 0; switch (pos) { case POSITIONS.CATCHER: // p1Score = scorer.calculateFirstBaseDefScore(p1.Def.getDefRating(p1.Def.CatcherRating), p1.Def.getERating(p1.Def.CatcherRating)); // p2Score = scorer.calculateFirstBaseDefScore(p2.Def.getDefRating(p2.Def.CatcherRating), p2.Def.getERating(p2.Def.CatcherRating)); break; case POSITIONS.FIRSTBASE: p1Score = scorer.calculateFirstBaseDefScore(p1.Def.getDefRating(p1.Def.FirstBaseRating), p1.Def.getERating(p1.Def.FirstBaseRating)); p2Score = scorer.calculateFirstBaseDefScore(p2.Def.getDefRating(p2.Def.FirstBaseRating), p2.Def.getERating(p2.Def.FirstBaseRating)); break; case POSITIONS.SECONDBASE: p1Score = scorer.calculateSecondBaseDefScore(p1.Def.getDefRating(p1.Def.SecondBaseRating), p1.Def.getERating(p1.Def.SecondBaseRating)); p2Score = scorer.calculateSecondBaseDefScore(p2.Def.getDefRating(p2.Def.SecondBaseRating), p2.Def.getERating(p2.Def.SecondBaseRating)); break; case POSITIONS.THIRDBASE: p1Score = scorer.calculateThirdBaseDefScore(p1.Def.getDefRating(p1.Def.ThirdBaseRating), p1.Def.getERating(p1.Def.ThirdBaseRating)); p2Score = scorer.calculateThirdBaseDefScore(p2.Def.getDefRating(p2.Def.ThirdBaseRating), p2.Def.getERating(p2.Def.ThirdBaseRating)); break; case POSITIONS.SHORTSTOP: p1Score = scorer.calculateShortStopDefScore(p1.Def.getDefRating(p1.Def.ShortstopRating), p1.Def.getERating(p1.Def.ShortstopRating)); p2Score = scorer.calculateShortStopDefScore(p2.Def.getDefRating(p2.Def.ShortstopRating), p2.Def.getERating(p2.Def.ShortstopRating)); break; case POSITIONS.LEFTFIELD: p1Score = scorer.calculateLeftFieldDefScore(p1.Def.getDefRating(p1.Def.LeftFieldRating), p1.Def.getERating(p1.Def.LeftFieldRating)); p2Score = scorer.calculateLeftFieldDefScore(p2.Def.getDefRating(p2.Def.LeftFieldRating), p2.Def.getERating(p2.Def.LeftFieldRating)); break; case POSITIONS.CENTERFIELD: p1Score = scorer.calculateCenterFieldDefScore(p1.Def.getDefRating(p1.Def.CenterFieldRating), p1.Def.getERating(p1.Def.CenterFieldRating)); p2Score = scorer.calculateCenterFieldDefScore(p2.Def.getDefRating(p2.Def.CenterFieldRating), p2.Def.getERating(p2.Def.CenterFieldRating)); break; case POSITIONS.RIGHTFIELD: p1Score = scorer.calculateRightFieldDefScore(p1.Def.getDefRating(p1.Def.RightFieldRating), p1.Def.getERating(p1.Def.RightFieldRating)); p2Score = scorer.calculateRightFieldDefScore(p2.Def.getDefRating(p2.Def.RightFieldRating), p2.Def.getERating(p2.Def.RightFieldRating)); break; } return(p1Score.CompareTo(p2Score)); }); }
public void testFirstBase() { List <TestItem> testCases = new List <TestItem>(); testCases.Add(TestItem.create(1, 4, .3)); testCases.Add(TestItem.create(1, 25, 12.4)); testCases.Add(TestItem.create(2, 7, 2.9)); testCases.Add(TestItem.create(2, 9, 3.9)); testCases.Add(TestItem.create(2, 20, 11.9)); testCases.Add(TestItem.create(3, 14, 11.6)); testCases.Add(TestItem.create(3, 10, 8.5)); testCases.Add(TestItem.create(4, 25, 30.1)); testCases.Add(TestItem.create(4, 30, 37.2)); testCases.Add(TestItem.create(4, 5, 9.7)); testCases.Add(TestItem.create(4, 12, 15.7)); foreach (TestItem item in testCases) { double result = scorer.calculateFirstBaseDefScore(item.Range, item.EFact); Assert.AreEqual(item.Expect, Math.Round(result, 1), item.ToString()); } }
public void testFirstBase() { List <TestItem> testCases = new List <TestItem>(); testCases.Add(TestItem.create(1, 4, 4.0)); testCases.Add(TestItem.create(1, 25, 25.0)); testCases.Add(TestItem.create(2, 7, 12.6)); testCases.Add(TestItem.create(2, 9, 14.6)); testCases.Add(TestItem.create(2, 20, 25.6)); testCases.Add(TestItem.create(3, 14, 25.2)); testCases.Add(TestItem.create(3, 10, 21.2)); testCases.Add(TestItem.create(4, 25, 41.8)); testCases.Add(TestItem.create(4, 30, 46.8)); testCases.Add(TestItem.create(4, 5, 21.8)); testCases.Add(TestItem.create(4, 12, 28.8)); foreach (TestItem item in testCases) { double result = scorer.calculateFirstBaseDefScore(item.Range, item.EFact); Assert.AreEqual(item.Expect, result, item.ToString()); } }