Beispiel #1
0
 public void Initialize(CalcManager cm)
 {
     calcManager = cm;
     keyboard    = GetComponent <FlexMenu>();
     responder   = new KeyboardInputResponder(this);
     keyboard.RegisterResponder(responder);
 }
            public void CalcOpera(CalcManager manager, char curChar)
            {
                if (curChar == '+' || curChar == '-' || curChar == '*' || curChar == '/')
                {
                    var num2      = manager.NumStack.Pop();
                    var num1      = manager.NumStack.Pop();
                    var operaTemp = manager.OperaStack.Pop();

                    var newValue = manager.CalcOperaFun(num1, num2, operaTemp);
                    manager.NumStack.Push(newValue);

                    manager.OperaStack.Push(curChar);
                    if (curChar == '+' || curChar == '-')
                    {
                        manager.InnerStatus = StartStatus.Instance;
                    }
                    else
                    {
                        m_preNum = false;
                    }
                    return;
                }

                if (!m_preNum)
                {
                    manager.NumStack.Push(int.Parse(curChar.ToString()));
                    m_preNum = true;
                }
                else
                {
                    var preNum = manager.NumStack.Pop();
                    var newNum = preNum * 10 + int.Parse(curChar.ToString());
                    manager.NumStack.Push(newNum);
                }
            }
 public MainWindow()
 {
     InitializeComponent();
     calcMngr = new CalcManager();
     FillOperationTypesInTheList();
     lblResult.Content = string.Empty;
 }
Beispiel #4
0
        public void Test_SumOfMultipleOf3And5_Threshold25()
        {
            int threshold    = 25;
            int correctValue = 175;
            int result       = CalcManager.Calculate(threshold, MethodType.MultipleOf3And5).First();

            Assert.AreEqual(correctValue, result, "Valore calcolato non valido R:" + result);
        }
Beispiel #5
0
    public void Initialize(CalcManager cm)
    {
        KeyboardInputResponder responder = new KeyboardInputResponder(this);

        menu.RegisterResponder(responder);

        calcManager = cm;
        saveButton  = transform.Find("ControlPanel/Save").GetComponent <FlexActionableComponent>();
    }
Beispiel #6
0
        public void Test_ArrayItemsCount_50()
        {
            int items = 50;

            int[] arr    = CalcManager.Calculate(items, MethodType.Random);
            int   result = arr.Length;

            Assert.AreEqual(items, result, "Numero di elementi calcolati :" + result);
        }
Beispiel #7
0
        public void Test_SumOfMultipleOf3_Threshold25()
        {
            // somma dei multipli di 3 fino a 25. Il numero primo non lo prendo in esame in quanto si richiede la somma dei soli multipli
            // 1 2 (3) 4 5 [6] 7 8 [9] 10 11 [12] 13 14 [15] 16 17 [18] 19 20 [21] 22 23 [24] 25       = 105
            int threshold    = 25;
            int correctValue = 105;
            int result       = CalcManager.Calculate(threshold, MethodType.MultipleOf3).First();

            Assert.AreEqual(correctValue, result, "Valore calcolato non valido R:" + result);
        }
    public void Initialize(CalcManager calcManager)
    {
        scroll   = GetComponentInChildren <Scroll>(true);
        flexMenu = GetComponent <FlexMenu>();
        SubmissionButtonResponder responder = new SubmissionButtonResponder(this, flexMenu);

        flexMenu.RegisterResponder(responder);
        submissionsPanel   = GetComponentInChildren <MultiSelectFlexPanel>().Initialize();
        joyStickAggregator = scroll.GetComponent <JoyStickAggregator>();
    }
Beispiel #9
0
        public void Test_SumOfMultipleOf5_Threshold25()
        {
            // somma dei multipli di 5 fino a 125. Il numero primo non lo prendo in esame in quanto si richiede la somma dei soli multipli
            // 1 2 3 4 (5) 6 7 8 9 [10] 11 12 13 14 [15] 16 17 18 19 [20] 21 22 23 24 [25]       = 70
            int threshold    = 25;
            int correctValue = 70;
            int result       = CalcManager.Calculate(threshold, MethodType.MultipleOf5).First();

            Assert.AreEqual(correctValue, result, "Valore calcolato non valido R:" + result);
        }
Beispiel #10
0
        public void Test_SumOfMultipleOf5_Threshold10()
        {
            // somma dei multipli di 5 fino a 10. Il numero primo non lo prendo in esame in quanto si richiede la somma dei soli multipli
            // 1 2 3 4 (5) 6 7 8 9 [10]       = 10
            int threshold    = 10;
            int correctValue = 10;
            int result       = CalcManager.Calculate(threshold, MethodType.MultipleOf5).First();

            Assert.AreEqual(correctValue, result, "Valore calcolato non valido R:" + result);
        }
    // Use this for initialization
    public void Initialize(CalcManager calcManager)
    {
        paramSurface  = calcManager.paramSurface;
        defaultSpeed  = calcManager.defaultSpeed;
        defaultEffect = calcManager.defaultEffect;

        responder = new ParticleSettingsResponder(paramSurface);
        GetComponent <FlexMenu>().RegisterResponder(responder);
        responder.initialize(defaultEffect, defaultSpeed);
    }
Beispiel #12
0
    public void Initialize(CalcManager cm)
    {
        scroll             = GetComponentInChildren <Scroll>(true);
        joyStickAggregator = scroll.GetComponent <JoyStickAggregator>();
        calcManager        = cm;
        HandleInput(defaultFunction);
        KeyboardInputResponder responder = new KeyboardInputResponder(this);

        menu.RegisterResponder(responder);
        initializePresetButtons();
    }
Beispiel #13
0
    public void Initialize()
    {
        if (Instance == null)
        {
            Instance = this;
        }
        calcInput        = connectedMenus.calcInput;
        boundsManager    = connectedMenus.boundsManager;
        pieceWiseControl = connectedMenus.pieceWiseControl;
        boundsManager    = connectedMenus.boundsManager;
        saveLoadMenu     = connectedMenus.saveLoadMenu;
        tournamentMenu   = connectedMenus.tournamentMenu;
        submissionsMenu  = connectedMenus.submissionsMenu;

        if (connectedMenus.boundsManager != null)
        {
            connectedMenus.boundsManager.Initialize(this);
        }
        connectedMenus.calcInput.Initialize(this);
        //tier 3
        connectedMenus.outputMenu.Initialize(this);

        //Req: calcInput
        connectedMenus.pieceWiseControl.Initialize(this);
        //Req: calcInput
        calcInput.ChangeOutput(expressionSet.expressions["X"]);
        //Req: calcInput
        connectedMenus.presetMenu.Initialize(this);

        connectedMenus.saveLoadMenu.Initialize(this);

        if (UnityEngine.SceneManagement.SceneManager.GetActiveScene().name.Equals("3 - FreeParametrization"))
        {
            if (connectedMenus.tournamentMenu != null)
            {
                connectedMenus.tournamentMenu.Initialize(this);
            }

            if (connectedMenus.submissionsMenu != null)
            {
                connectedMenus.submissionsMenu.Initialize(this);
            }

            if (connectedMenus.mySubmissionsMenu != null)
            {
                connectedMenus.mySubmissionsMenu.Initialize(this);
            }
        }

        if (connectedMenus.particleAnimationSettings != null)
        {
            connectedMenus.particleAnimationSettings.Initialize(this);
        }
    }
Beispiel #14
0
    public void Initialize(CalcManager calcManager)
    {
        this.calcManager = calcManager;

        scroll   = GetComponentInChildren <Scroll>(true);
        flexMenu = GetComponent <FlexMenu>();
        KeyboardInputResponder responder = new KeyboardInputResponder(this, flexMenu);

        flexMenu.RegisterResponder(responder);
        tournamentsPanel   = GetComponentInChildren <MultiSelectFlexPanel>().Initialize();
        joyStickAggregator = scroll.GetComponent <JoyStickAggregator>();
    }
Beispiel #15
0
        public void DividingTestCorrect()
        {
            //arrange
            var manager     = new CalcManager(new DbManager());
            var firstValue  = 96;
            var secondValue = 8;

            //Act
            manager.Dividing(firstValue, secondValue);

            //Assert
            Assert.AreEqual(manager.Expression.ResultValue, 12);
        }
Beispiel #16
0
        public void AdditionTestIncorrect()
        {
            //arrange
            var manager     = new CalcManager(new DbManager());
            var firstValue  = 43;
            var secondValue = 87;

            //Act
            manager.Addition(firstValue, secondValue);

            //Assert
            Assert.AreNotEqual(manager.Expression.ResultValue, 131);
        }
Beispiel #17
0
        public void DividingTestIncorrect()
        {
            //arrange
            var manager     = new CalcManager(new DbManager());
            var firstValue  = 738;
            var secondValue = 45;

            //Act
            manager.Dividing(firstValue, secondValue);

            //Assert
            Assert.AreNotEqual(manager.Expression.ResultValue, 32);
        }
Beispiel #18
0
        public void SubstractionTestIncorrect()
        {
            //arrange
            var manager     = new CalcManager(new DbManager());
            var firstValue  = 54;
            var secondValue = 32;

            //Act
            manager.Substraction(firstValue, secondValue);

            //Assert
            Assert.AreNotEqual(manager.Expression.ResultValue, 45);
        }
Beispiel #19
0
        public void MultiplyingTestCorrect()
        {
            //arrange
            var manager     = new CalcManager(new DbManager());
            var firstValue  = 12;
            var secondValue = 14;

            //Act
            manager.Multiplying(firstValue, secondValue);

            //Assert
            Assert.AreEqual(manager.Expression.ResultValue, 168);
        }
Beispiel #20
0
        public void MultiplyingTestIncorrect()
        {
            //arrange
            var manager     = new CalcManager(new DbManager());
            var firstValue  = 34;
            var secondValue = 27;

            //Act
            manager.Multiplying(firstValue, secondValue);

            //Assert
            Assert.AreNotEqual(manager.Expression.ResultValue, 536);
        }
Beispiel #21
0
    public void Initialize(CalcManager cm)
    {
        KeyboardInputResponder responder = new KeyboardInputResponder(this);

        menu.RegisterResponder(responder);

        calcManager  = cm;
        saveButton   = transform.Find("ControlPanel/Save").GetComponent <FlexActionableComponent>();
        exportButton = transform.Find("ControlPanel/GenerateMesh").GetComponent <FlexActionableComponent>();
        if (UnityEngine.SceneManagement.SceneManager.GetActiveScene().name.Equals("3 - FreeParametrization"))
        {
            calcManager.inputHandler += LookupCommitStateByExpressionSet;
        }
    }
Beispiel #22
0
        public void Test_ArrayItemsVerifyValues_500()
        {
            // generando un array di elementi random con 500 items verifico la presenza di doppioni
            int items = 500;

            int[] arr = CalcManager.Calculate(items, MethodType.Random);

            var res = (from i in arr
                       group i by i into g
                       select new { Num = g.Key, Cnt = g.Count() }).ToList();
            int doppi = res.Where(x => x.Cnt > 1).Count();

            Assert.AreEqual(0, doppi, "Trovati numeri doppioni:" + doppi);
        }
Beispiel #23
0
    public void Initialize(CalcManager calcManager)
    {
        this.calcManager = calcManager;

        scroll   = GetComponentInChildren <Scroll>(true);
        flexMenu = GetComponent <FlexMenu>();
        KeyboardInputResponder responder = new KeyboardInputResponder(this);

        flexMenu.RegisterResponder(responder);
        selectPanel        = GetComponentInChildren <MultiSelectFlexPanel>().Initialize();
        joyStickAggregator = scroll.GetComponent <JoyStickAggregator>();

        LoadFiles();
        loader.fileLoadedEvent += LoadNewFile;
    }
Beispiel #24
0
        public int Calculate1(string s)
        {
            /*
             * 问题:基本计算器
             * 思路:
             *  1.挨个儿遍历输入的字符
             *  2.对于状态对象而言,他要处理的就是一个字符
             *  3.不同的状态对象,对传入字符的处理方式是不同的
             *  4.依据情景分析,会存在3种状态
             *      4.1 起始状态,即前面的字符不影响后面的状态操作
             *      4.2 数字状态,即前面的字符是数字
             *      4.3 符号状态,即前面的字符是"*"和"/"
             *  5.这3种状态的转变过程是:
             *      5.1 起始状态
             *          5.1.1 遇到符号"+"和"-",入符号栈,状态无需改变
             *          5.1.2 遇到符号"*"和"/",入符号栈,状态变为"符号状态"
             *          5.1.3 遇到数字,入数字栈,状态变为"数字状态"
             *      5.2 数字状态
             *          5.2.1 遇到符号"+"和"-",入符号栈,状态变为"起始状态"
             *          5.2.2 遇到符号"*"和"/",入符号栈,状态变为"符号状态"
             *          5.2.3 遇到数字,入数字栈,状态无需改变
             *      5.3 符号状态
             *          5.3.1 遇到符号,先做计算,若符号为"+"和"-",则变更为"起始状态"
             *          5.3.2 遇到数字,入数字栈,状态无需改变
             *  6.具体还涉及到一点儿细节,就不一一列举说明了
             *
             * 关键点:
             *
             * 时间复杂度:O(n)
             * 空间复杂度:O(1)
             */

            CalcManager calc = new CalcManager();

            foreach (var sItem in s)
            {
                if (sItem == ' ')
                {
                    continue;
                }

                calc.GetInput(sItem);
            }

            return(calc.GetResult());
        }
Beispiel #25
0
            public void CalcOpera(CalcManager manager, char curChar)
            {
                if (curChar == '+' || curChar == '-')
                {
                    manager.OperaStack.Push(curChar);
                    return;
                }

                if (curChar == '*' || curChar == '/')
                {
                    manager.OperaStack.Push(curChar);
                    manager.InnerStatus = new PreOperaStatus();
                    return;
                }

                manager.NumStack.Push(int.Parse(curChar.ToString()));
                manager.InnerStatus = PreNumStatus.Instance;
            }
Beispiel #26
0
            public void CalcOpera(CalcManager manager, char curChar)
            {
                if (curChar == '+' || curChar == '-')
                {
                    manager.OperaStack.Push(curChar);
                    manager.InnerStatus = StartStatus.Instance;
                    return;
                }

                if (curChar == '*' || curChar == '/')
                {
                    manager.OperaStack.Push(curChar);
                    manager.InnerStatus = new PreOperaStatus();
                    return;
                }

                var preNum = manager.NumStack.Pop();
                var newNum = preNum * 10 + int.Parse(curChar.ToString());

                manager.NumStack.Push(newNum);
            }
    public PieceWiseControl Initialize(CalcManager cm)
    {
        this.calcManager  = cm;
        this.paramSurface = cm.paramSurface;
        paramSurface.CreateExpressionSet();
        //calcManager.ChangeExpressionSet(paramSurface.expressionSets[0]);

        responder = new KeyboardInputResponder(this);
        menu.RegisterResponder(responder);
        //create saved copy of first tab
        saveTab = Instantiate(firstTab, firstTab.transform.position, firstTab.transform.rotation, firstTab.transform.parent);
        saveTab.transform.localScale = firstTab.transform.localScale;
        saveTab.SetActive(false);
        //find distance between plus and 1 for use in future spacing
        distanceBetween = plusTab.transform.localPosition - firstTab.transform.localPosition;

        tabList.Add(firstTab);
        SwitchToTab(firstTab);

        return(this);
    }
        static void Main(string[] args)
        {
            _ValueRequested = -1;
            while (_ValueRequested != 0)
            {
                SelectOption();
                if (_ValueRequested == -1)
                {
                    continue;
                }
                else if (_ValueRequested == 0)
                {
                    return;
                }

                // Execute calculate
                int[] result = CalcManager.Calculate(_ValueRequested, _MethodRequested);

                // Output response
                if (_MethodRequested == MethodType.Random)
                {
                    string textToOut = "";
                    foreach (var i in result)
                    {
                        textToOut += string.Format("{0};", i);
                    }

                    Console.Write(string.Format("\r\n\r\n Array with n={0} integer with random values", _ValueRequested));
                    Console.Write("\r\n arr[n] = " + textToOut);
                    Console.ReadKey();
                }
                else
                {
                    Console.Write(string.Format("\r\n\r\n Sum of {0} up to {1} = {2}", _MethodRequested, _ValueRequested, result.First()));
                    Console.ReadKey();
                }
            }

            Console.ReadKey();
        }
Beispiel #29
0
        public void RunLocationStatisticsMakerTest()
        {
            using WorkingDir wd    = new WorkingDir(Utili.GetCurrentMethodAndClass());
            using DatabaseSetup db = new DatabaseSetup(Utili.GetCurrentMethodAndClass());
            Simulator sim = new Simulator(db.ConnectionString)
            {
                MyGeneralConfig = { StartDateUIString = "15.1.2015", EndDateUIString = "18.1.2015", InternalTimeResolution = "00:01:00" }
            };

            sim.MyGeneralConfig.ApplyOptionDefault(OutputFileDefault.NoFiles);
            sim.MyGeneralConfig.Enable(CalcOption.LocationsFile);
            //ConfigSetter.SetGlobalTimeParameters(sim.MyGeneralConfig);
            sim.Should().NotBeNull();
            sim.MyGeneralConfig.RandomSeed = 10;
            CalcManagerFactory    cmf = new CalcManagerFactory();
            CalculationProfiler   calculationProfiler = new CalculationProfiler();
            CalcStartParameterSet csps = new CalcStartParameterSet(sim.GeographicLocations[0],
                                                                   sim.TemperatureProfiles[0], sim.ModularHouseholds[0],
                                                                   EnergyIntensityType.Random, false, null,
                                                                   LoadTypePriority.All, null, null, null, sim.MyGeneralConfig.AllEnabledOptions(),
                                                                   new DateTime(2015, 1, 15), new DateTime(2015, 1, 18), new TimeSpan(0, 1, 0), ";", 10, new TimeSpan(0, 1, 0), false, false, false, 3, 3,
                                                                   calculationProfiler, wd.WorkingDirectory, false);
            CalcManager cm = cmf.GetCalcManager(sim, csps, false);
Beispiel #30
0
    public void Initialize(CalcManager calcManager)
    {
        this.calcManager = calcManager;

        scroll   = GetComponentInChildren <Scroll>(true);
        flexMenu = GetComponent <FlexMenu>();
        TournamentMenuResponder responder = new TournamentMenuResponder(this);

        submissionsPanel = GetComponentInChildren <MultiSelectFlexPanel>().Initialize();
        submissionsPanel.selectedUnselectedColor = QuickButton.TOGGLE_OFF;
        submissionsPanel.selectedSelectedColor   = QuickButton.TOGGLE_ON;
        submissionsPanel.hoverUnselectedColor    = QuickButton.LIGHT_HOVERING;
        submissionsPanel.hoverSelectedColor      = QuickButton.DARK_HOVERING;
        submissionsPanel.passiveUnselectedColor  = Color.white;
        submissionsPanel.passiveSelectedColor    = QuickButton.DARK_PASSIVE;

        joyStickAggregator = scroll.GetComponent <JoyStickAggregator>();

        mainPanel.AddAction(previousRoundButton);
        mainPanel.AddAction(nextRoundButton);
        flexMenu.AddPanel(mainPanel);
        flexMenu.RegisterResponder(responder);
    }