示例#1
0
 public static void ControlRod_ClassInitialize(TestContext context)
 {
     _surveyorMock = Substitute.For <ISurveyor>();
     _ricochetMock = Substitute.For <IInitializableRicochet>();
     _stateMock    = Substitute.For <IRodState>();
     _rodType      = eRod.Defence;
 }
示例#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);
                }
            }
        }
示例#3
0
 public static void ControlRod_ClassInitialize(TestContext context)
 {
     _surveyorMock = Substitute.For<ISurveyor>();
     _ricochetMock = Substitute.For<IInitializableRicochet>();
     _stateMock = Substitute.For<IRodState>();
     _rodType = eRod.Defence;
 }
示例#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);
                }
            }
        }
示例#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);
        }
        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
            };
        }
示例#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
            };
        }
示例#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;
 }
示例#9
0
 public static void ClassInit(TestContext context)
 {
     _testAsset = new Surveyor(X_MAX_PTS, Y_MAX_PTS, X_MAX_MM, Y_MAX_MM);
 }
示例#10
0
 public static void ClassInit(TestContext context)
 {
     _testAsset = new Surveyor(X_MAX_PTS, Y_MAX_PTS, X_MAX_MM, Y_MAX_MM);
 }
示例#11
0
 public static void ControlRod_ClassInitialize(TestContext context)
 {
     _surveyorMock = Substitute.For <ISurveyor>();
     _ricochetMock = Substitute.For <IInitializableRicochet>();
 }
示例#12
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;
 }
        //UPDATE SURVEYOR
        public void UpdateSurveyorDB(ISurveyor model)
        {
            string sql = "UPDATE Table_Surveyor SET date='" + model.date + "', initial_name='" + model.initail_name + "', surveyor_type='" + model.surveyor_type + "', mobile='" + model.mobile + "', email='" + model.email + "', username='******' WHERE emp_reg_no='" + model.emp_reg_no + "' AND division='" + model.division + "'";

            InsertDeleteUpdateCommon(sql);
        }
        //INSERT NEW SURVEYOR
        public void AddNewSurveyorDB(ISurveyor model)
        {
            string sql = "INSERT INTO Table_Surveyor VALUES ('" + model.date + "','" + model.emp_reg_no + "','" + model.initail_name + "','" + model.surveyor_type + "','" + model.mobile + "','" + model.email + "','" + model.division + "','" + model.username + "')";

            InsertDeleteUpdateCommon(sql);
        }
示例#15
0
 public static void ControlRod_ClassInitialize(TestContext context)
 {
     _surveyorMock = Substitute.For<ISurveyor>();
     _ricochetMock = Substitute.For<IInitializableRicochet>();
 }
示例#16
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);
        }