public void SelectTest() { #region Формирование исходных данных var history = new ExperimentHistory("", null, new Experiment()); var game = new Game() { Title = "Game" }; var strike = new Strike() {ErrorDistance = 0}; var strike2 = new Strike() {ErrorDistance = 1}; var strikes = new List<Strike> {strike, strike2}; var users = new Users() { new User { Person = new Person(), Strikes = strikes } }; history.AddGame(game, users); var settings = new List<PlayerHistorySample> { new PlayerHistorySample { FromStrike = "first", ToStrike = "last", GameTitle = "Game" } }; #endregion var samples = history.SelectSamples(settings); Assert.AreEqual(2, samples.Count()); for (var i = 0; i < strikes.Count; i++) { Assert.AreEqual(strikes[i].ErrorDistance, samples.ElementAt(i)); } }
public void Initialize() { _dt = 1; t_ = 0; var currentStrike = gameObjects["currentStrikeInfo"] as StrikeInfo; if (currentStrike == null) throw new NullReferenceException("currentStrikeInfo"); _strikeModel = currentStrike.Model; _strike = gameObjects["strike"] as Strike; if (_strike == null) throw new NullReferenceException("strike"); _t2 = Convert.ToInt32((_strike.StrikeTimeSpan.TotalSeconds + _strikeModel.Delay) * 1000); _ball = gameObjects["ball"] as Ball; _ballStartPosition = new Vector2(_ball.Position.X, _ball.Position.Y); _hole = gameObjects["hole"] as Hole; var currentUser = gameObjects["currentUser"] as User; if (currentUser == null) throw new NullReferenceException("currentUser"); }
private static ExperimentHistory CreateHistory(int hitCount, int size, bool lastStrikeHit) { var history = new ExperimentHistory("", null, new Experiment()); var game = new Game() { Title = "Game" }; var strikes = new List<Strike>(); var count = hitCount - 1; var j = 0; for (var i = 0; i < size; i++) { var strike = new Strike { IsHit = j < count }; j++; strikes.Add(strike); } strikes.Last().IsHit = lastStrikeHit; var users = new Users() { new User { Person = new Person(), Strikes = strikes } }; history.AddGame(game, users); return history; }
public void SelectTest18() { #region Формирование исходных данных var history = new ExperimentHistory("", null, new Experiment()); var game = new Game() { Title = "Game" }; var strike = new Strike() { ErrorDistance = 0 }; var strike2 = new Strike() { ErrorDistance = 1 }; var strikes = new List<Strike> { strike, strike2 }; var users = new Users() { new User { Person = new Person(), Strikes = strikes } }; history.AddGame(game, users); var settings = new List<PlayerHistorySample> { new PlayerHistorySample { ToStrike = "last - 10", GameTitle = "Game" } }; #endregion var samples = history.SelectSamples(settings); }
public static Strike CreateStrike(Ball ball, Hole hole, StrikeInfo currentKick, KickResult kickResult, TimeSpan timeBeforeSpaceDown = new TimeSpan()) { var kickedBall = new Ball() { Size = ball.Size, Position = ComputeBallPosition(ball, kickResult) }; var miss = GetMiss(hole, kickedBall); var strikeTimeSpan = TimeSpan.FromSeconds(kickResult.ElapsedTime); var strike = new Strike { Number = currentKick.RepeatTimes, StrikeInfo = currentKick, DateTime = System.DateTime.Now, ErrorDistance = kickedBall.Position.X - hole.Position.X, IsHit = Math.Abs(miss - 0.0) < 0.001, MissDistance = Math.Round(miss, 3), MissTime = Math.Round(miss / currentKick.Model.Velocity, 3), BeforeStrikeTimeSpan = timeBeforeSpaceDown, StrikeTimeSpan = strikeTimeSpan, TotalTimeSpan = timeBeforeSpaceDown + strikeTimeSpan, StartBallPosition = ball.Position.Copy(), StartHolePosition = hole.Position.Copy() }; return strike; }