Esempio n. 1
0
 public static void ControlRod_ClassInitialize(TestContext context)
 {
     _surveyorMock = Substitute.For <ISurveyor>();
     _ricochetMock = Substitute.For <IInitializableRicochet>();
     _stateMock    = Substitute.For <IRodState>();
     _rodType      = eRod.Defence;
 }
Esempio n. 2
0
        /// <summary>
        /// Initialization Using Configuration file
        /// </summary>
        public void Initialize()
        {
            if (!IsInitialized)
            {
                _rodXCoordinate              = Configuration.Attributes.GetValue <int>(_rodType.ToString());
                _minSectorWidth              = Configuration.Attributes.GetValue <int>(Configuration.Names.TABLE_RODS_DIST);
                _sectorFactor                = Configuration.Attributes.GetValue <double>(Configuration.Names.SECTOR_FACTOR);
                _playerDistance              = Configuration.Attributes.GetPlayersDistancePerRod(_rodType);
                _playerCount                 = Configuration.Attributes.GetPlayersCountPerRod(_rodType);
                _offsetY                     = Configuration.Attributes.GetPlayersOffsetYPerRod(_rodType);
                _stopperDistance             = Configuration.Attributes.GetRodDistanceBetweenStoppers(_rodType);
                _bestEffort                  = Configuration.Attributes.GetFirstPlayerBestEffort(_rodType);
                _predictIntersectionTimespan = Configuration.Attributes.GetValue <int>(Configuration.Names.KEY_ROD_INTERSECTION_MAX_TIMESPAN_SEC);

                MinimumPossibleStartStopperY = ROD_STOPPER_MIN;
                MaximumPossibleStartStopperY = TABLE_HEIGHT - ROD_STOPPER_MIN - _stopperDistance;

                if (State == null)
                {
                    State = new RodState(MinimumPossibleStartStopperY, MaximumPossibleStartStopperY);
                }

                DynamicSector = _minSectorWidth;
                IsInitialized = true;
            }
        }
Esempio n. 3
0
 public static void ControlRod_ClassInitialize(TestContext context)
 {
     _surveyorMock = Substitute.For<ISurveyor>();
     _ricochetMock = Substitute.For<IInitializableRicochet>();
     _stateMock = Substitute.For<IRodState>();
     _rodType = eRod.Defence;
 }
Esempio n. 4
0
        /// <summary>
        /// Initialization with given parameters
        /// </summary>
        /// <param name="rodXCoordinate">X Coordinate of rod (in MM)</param>
        /// <param name="minSectorWidth">Minimal sector width (in MM)</param>
        /// <param name="sectorFactor">Sector factor to change width accoroding to speed</param>
        /// <param name="playerDistance">Distance beetween 2 player on rod (in MM)</param>
        /// <param name="playerCount">Player count on current rod (in MM)</param>
        /// <param name="offsetY">Distance between stopper and first player on rod (in MM)</param>
        /// <param name="stopperDistance">Distance between start and end stoppers of current rod (in MM)</param>
        /// <param name="bestEffort">Coordinate (in MM) for first player to be on in BEST_EFFORT state</param>
        /// <param name="intersectionPredictionTimespan">Maximal TimeSpan to predict intersections with rod (in seconds)</param>
        public void Initialize(int rodXCoordinate, int minSectorWidth, double sectorFactor,
                               int playerDistance, int playerCount, int offsetY, int stopperDistance, int bestEffort, int intersectionPredictionTimespan)
        {
            if (!IsInitialized)
            {
                _rodXCoordinate              = rodXCoordinate;
                _minSectorWidth              = minSectorWidth;
                _sectorFactor                = sectorFactor;
                _playerDistance              = playerDistance;
                _playerCount                 = playerCount;
                _offsetY                     = offsetY;
                _stopperDistance             = stopperDistance;
                _bestEffort                  = bestEffort;
                _predictIntersectionTimespan = intersectionPredictionTimespan;

                DynamicSector = _minSectorWidth;
                MinimumPossibleStartStopperY = ROD_STOPPER_MIN;
                MaximumPossibleStartStopperY = TABLE_HEIGHT - ROD_STOPPER_MIN - _stopperDistance;

                if (State == null)
                {
                    State = new RodState(MinimumPossibleStartStopperY, MaximumPossibleStartStopperY);
                }

                IsInitialized = true;
            }
        }
Esempio n. 5
0
        /// <summary>
        /// Control Rod Constructor
        /// </summary>
        /// <param name="rodType">Rod Type to construct</param>
        /// <param name="surveyor">Used in for range check vector intersection calculation</param>
        /// <param name="ricochetCalc">Used for ricochet in vector intersection calculation</param>
        /// <param name="tableHeight">Foosbot table height - rod length (Y) in mm</param>
        /// <param name="rodStopperMin">Minimal point can be reached by stopper (Y) in mm</param>
        /// <param name="rodState">Rod state will be created in initialization method if passed null</param>
        public ControlRod(eRod rodType, ISurveyor surveyor, IInitializableRicochet ricochetCalc,
                          int tableHeight = -1, int rodStopperMin = -1, IRodState rodState = null)
        {
            _rodType     = rodType;
            _surveyor    = surveyor;
            _vectorUtils = ricochetCalc;
            State        = rodState;

            TABLE_HEIGHT = (tableHeight > 0) ? tableHeight
                : Configuration.Attributes.GetValue <int>(Configuration.Names.TABLE_HEIGHT);
            ROD_STOPPER_MIN = (rodStopperMin > 0) ? rodStopperMin
                : Configuration.Attributes.GetValue <int>(Configuration.Names.KEY_ROD_START_Y);
        }
Esempio n. 6
0
 public static void TestInitialize(TestContext context)
 {
     _rodState = new RodState(MIN_LIMIT, MAX_LIMIT);
 }
Esempio n. 7
0
        /// <summary>
        /// Initialization Using Configuration file
        /// </summary>
        public void Initialize()
        {
            if (!IsInitialized)
            {
                _rodXCoordinate = Configuration.Attributes.GetValue<int>(_rodType.ToString());
                _minSectorWidth = Configuration.Attributes.GetValue<int>(Configuration.Names.TABLE_RODS_DIST);
                _sectorFactor = Configuration.Attributes.GetValue<double>(Configuration.Names.SECTOR_FACTOR);
                _playerDistance = Configuration.Attributes.GetPlayersDistancePerRod(_rodType);
                _playerCount = Configuration.Attributes.GetPlayersCountPerRod(_rodType);
                _offsetY = Configuration.Attributes.GetPlayersOffsetYPerRod(_rodType);
                _stopperDistance = Configuration.Attributes.GetRodDistanceBetweenStoppers(_rodType);
                _bestEffort = Configuration.Attributes.GetFirstPlayerBestEffort(_rodType);
                _predictIntersectionTimespan = Configuration.Attributes.GetValue<int>(Configuration.Names.KEY_ROD_INTERSECTION_MAX_TIMESPAN_SEC);
                _useDynamicSector = Configuration.Attributes.GetValue<bool>(Configuration.Names.KEY_USE_DYNAMIC_SECTOR);

                MinimumPossibleStartStopperY = ROD_STOPPER_MIN;
                MaximumPossibleStartStopperY = TABLE_HEIGHT - ROD_STOPPER_MIN - _stopperDistance;

                if (State == null)
                {
                    State = new RodState(MinimumPossibleStartStopperY, MaximumPossibleStartStopperY);
                }

                DynamicSector = _minSectorWidth;
                IsInitialized = true;
            }
        }
Esempio n. 8
0
        /// <summary>
        /// Initialization with given parameters
        /// </summary>
        /// <param name="rodXCoordinate">X Coordinate of rod (in MM)</param>
        /// <param name="minSectorWidth">Minimal sector width (in MM)</param>
        /// <param name="sectorFactor">Sector factor to change width accoroding to speed</param>
        /// <param name="playerDistance">Distance beetween 2 player on rod (in MM)</param>
        /// <param name="playerCount">Player count on current rod (in MM)</param>
        /// <param name="offsetY">Distance between stopper and first player on rod (in MM)</param>
        /// <param name="stopperDistance">Distance between start and end stoppers of current rod (in MM)</param>
        /// <param name="bestEffort">Coordinate (in MM) for first player to be on in BEST_EFFORT state</param>
        /// <param name="intersectionPredictionTimespan">Maximal TimeSpan to predict intersections with rod (in seconds)</param>
        public void Initialize(int rodXCoordinate, int minSectorWidth, double sectorFactor,
            int playerDistance, int playerCount, int offsetY, int stopperDistance, int bestEffort, int intersectionPredictionTimespan)
        {
            if (!IsInitialized)
            {
                _rodXCoordinate = rodXCoordinate;
                _minSectorWidth = minSectorWidth;
                _sectorFactor = sectorFactor;
                _playerDistance = playerDistance;
                _playerCount = playerCount;
                _offsetY = offsetY;
                _stopperDistance = stopperDistance;
                _bestEffort = bestEffort;
                _predictIntersectionTimespan = intersectionPredictionTimespan;

                DynamicSector = _minSectorWidth;
                MinimumPossibleStartStopperY = ROD_STOPPER_MIN;
                MaximumPossibleStartStopperY = TABLE_HEIGHT - ROD_STOPPER_MIN - _stopperDistance;

                if (State == null)
                {
                    State = new RodState(MinimumPossibleStartStopperY, MaximumPossibleStartStopperY);
                }

                IsInitialized = true;
            }
        }
Esempio n. 9
0
        /// <summary>
        /// Control Rod Constructor
        /// </summary>
        /// <param name="rodType">Rod Type to construct</param>
        /// <param name="surveyor">Used in for range check vector intersection calculation</param>
        /// <param name="ricochetCalc">Used for ricochet in vector intersection calculation</param>
        /// <param name="tableHeight">Foosbot table height - rod length (Y) in mm</param>
        /// <param name="rodStopperMin">Minimal point can be reached by stopper (Y) in mm</param>
        /// <param name="rodState">Rod state will be created in initialization method if passed null</param>
        public ControlRod(eRod rodType, ISurveyor surveyor, IInitializableRicochet ricochetCalc, 
            int tableHeight = -1, int rodStopperMin = -1, IRodState rodState = null)
        {
            _rodType = rodType;
            _surveyor = surveyor;
            _vectorUtils = ricochetCalc;
            State = rodState;

            TABLE_HEIGHT = (tableHeight > 0) ? tableHeight
                : Configuration.Attributes.GetValue<int>(Configuration.Names.TABLE_HEIGHT);
            ROD_STOPPER_MIN = (rodStopperMin > 0) ? rodStopperMin
                : Configuration.Attributes.GetValue<int>(Configuration.Names.KEY_ROD_START_Y);
        }
Esempio n. 10
0
 public static void TestInitialize(TestContext context)
 {
     _rodState = new RodState(MIN_LIMIT, MAX_LIMIT);
 }