Ejemplo 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;
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Decision Manager Constructor
        /// </summary>
        /// <param name="surveyor">Convertion and table size storage unit. 
        /// (If null [default] - will be instantiated in constructor)</param>
        /// <param name="ricochetCalc">Ricochet calc unit. NOTE: working in mm. 
        /// (If null [default] - will be instantiated in constructor)</param>
        /// <param name="predictor">Predictor for ball coordinates
        /// (If null [default] - will be instantiated in constructor)</param>
        /// <param name="decisionTree">Full decision tree to make decisions per eacch rod.
        /// (If null [default] - will be instantiated in constructor)</param>
        /// <param name="controlledRods">Rods to be controlled by manager
        /// (If null [default] - will be instantiated in constructor)</param>
        public DecisionManager(ISurveyor surveyor = null, IInitializableRicochet ricochetCalc = null, IPredictor predictor = null, IDecisionTree decisionTree = null, List<IInitializableRod> controlledRods = null)
        {
            _surveyor =  surveyor ?? new Surveyor();

            IInitializableRicochet ricochetCalculator = ricochetCalc ?? new RicochetCalc(true, eUnits.Mm);

            _decisionTree = decisionTree ?? new FullDecisionTree(new PartialDecisionTree());

            _predictor = predictor ?? new Predictor(_surveyor, ricochetCalculator);

            //use given rods if not null
            if (controlledRods != null)
            {
                _controlledRods = controlledRods;
            }
            //create new rods and init them
            else
            {
                _controlledRods = new List<IInitializableRod>();
                foreach (eRod type in Enum.GetValues(typeof(eRod)))
                {
                    IInitializableRod rod = new ControlRod(type, _surveyor, ricochetCalculator);
                    rod.Initialize();
                    _controlledRods.Add(rod);
                }
            }
        }
Ejemplo 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;
 }
Ejemplo n.º 4
0
        /// <summary>
        /// Decision Manager Constructor
        /// </summary>
        /// <param name="surveyor">Convertion and table size storage unit.
        /// (If null [default] - will be instantiated in constructor)</param>
        /// <param name="ricochetCalc">Ricochet calc unit. NOTE: working in mm.
        /// (If null [default] - will be instantiated in constructor)</param>
        /// <param name="predictor">Predictor for ball coordinates
        /// (If null [default] - will be instantiated in constructor)</param>
        /// <param name="decisionTree">Full decision tree to make decisions per eacch rod.
        /// (If null [default] - will be instantiated in constructor)</param>
        /// <param name="controlledRods">Rods to be controlled by manager
        /// (If null [default] - will be instantiated in constructor)</param>
        public DecisionManager(ISurveyor surveyor = null, IInitializableRicochet ricochetCalc = null, IPredictor predictor = null, IDecisionTree decisionTree = null, List <IInitializableRod> controlledRods = null)
        {
            _surveyor = surveyor ?? new Surveyor();

            IInitializableRicochet ricochetCalculator = ricochetCalc ?? new RicochetCalc(true, eUnits.Mm);

            _decisionTree = decisionTree ?? new FullDecisionTree(new PartialDecisionTree());

            _predictor = predictor ?? new Predictor(_surveyor, ricochetCalculator);

            //use given rods if not null
            if (controlledRods != null)
            {
                _controlledRods = controlledRods;
            }
            //create new rods and init them
            else
            {
                _controlledRods = new List <IInitializableRod>();
                foreach (eRod type in Enum.GetValues(typeof(eRod)))
                {
                    IInitializableRod rod = new ControlRod(type, _surveyor, ricochetCalculator);
                    rod.Initialize();
                    _controlledRods.Add(rod);
                }
            }
        }
Ejemplo 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);
        }
Ejemplo n.º 6
0
        public static void DecisionManager_ClassInitialize(TestContext context)
        {
            _surveyorMock     = Substitute.For <ISurveyor>();
            _ricochetCalcMock = Substitute.For <IInitializableRicochet>();
            _predictorMock    = Substitute.For <IPredictor>();
            _decisionTreeMock = Substitute.For <IDecisionTree>();

            _rodGoalKeaperMock = Substitute.For <IInitializableRod>();
            _rodDefenceMock    = Substitute.For <IInitializableRod>();
            _rodMidFieldMock   = Substitute.For <IInitializableRod>();
            _rodAttackMock     = Substitute.For <IInitializableRod>();

            _rodMockList = new List <IInitializableRod>()
            {
                _rodGoalKeaperMock, _rodDefenceMock,
                _rodMidFieldMock, _rodAttackMock
            };
        }
Ejemplo n.º 7
0
        public static void DecisionManager_ClassInitialize(TestContext context)
        {
            _surveyorMock = Substitute.For<ISurveyor>();
            _ricochetCalcMock = Substitute.For<IInitializableRicochet>();
            _predictorMock = Substitute.For<IPredictor>();
            _decisionTreeMock = Substitute.For<IDecisionTree>();
            
            _rodGoalKeaperMock = Substitute.For<IInitializableRod>();
            _rodDefenceMock = Substitute.For<IInitializableRod>();
            _rodMidFieldMock = Substitute.For<IInitializableRod>();
            _rodAttackMock = Substitute.For<IInitializableRod>();

            _rodMockList = new List<IInitializableRod>()
            {  
                _rodGoalKeaperMock, _rodDefenceMock,
                _rodMidFieldMock, _rodAttackMock
            };
        }
Ejemplo n.º 8
0
 /// <summary>
 /// Predictor class constructor
 /// </summary>
 /// <param name="surveyor">Surveyor for calculating and verify table size vs. coordinates</param>
 /// <param name="ricochetCalc">Ricochet Calc Unit instance for calculating ricochet</param>
 public Predictor(ISurveyor surveyor, IInitializableRicochet ricochetCalc)
 {
     _surveyor     = surveyor;
     _ricochetCalc = ricochetCalc;
 }
Ejemplo n.º 9
0
 public void InitTestBed()
 {
     _testAsset = new RicochetCalc();
     _testAsset.InitializeRicochetCalc(eUnits.Mm, XMAX, YMAX, RICOCHE);
 }
Ejemplo n.º 10
0
 public static void ControlRod_ClassInitialize(TestContext context)
 {
     _surveyorMock = Substitute.For <ISurveyor>();
     _ricochetMock = Substitute.For <IInitializableRicochet>();
 }
Ejemplo n.º 11
0
 /// <summary>
 /// Predictor class constructor
 /// </summary>
 /// <param name="surveyor">Surveyor for calculating and verify table size vs. coordinates</param>
 /// <param name="ricochetCalc">Ricochet Calculation Unit instance for calculating ricochet</param>
 public Predictor(ISurveyor surveyor, IInitializableRicochet ricochetCalc)
 {
     _surveyor = surveyor;
     _ricochetCalc = ricochetCalc;
 }
Ejemplo n.º 12
0
 public static void ControlRod_ClassInitialize(TestContext context)
 {
     _surveyorMock = Substitute.For<ISurveyor>();
     _ricochetMock = Substitute.For<IInitializableRicochet>();
 }
Ejemplo n.º 13
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);
        }
Ejemplo n.º 14
0
 public void InitTestBed()
 {
     _testAsset = new RicochetCalc();
     _testAsset.InitializeRicochetCalc(eUnits.Mm, XMAX, YMAX, RICOCHE);
 }