public StabilizationSession(SessionTopic topic, double avgSolveTime)
    {
        this.topic             = topic;
        this.sceneAvgSolveTime = avgSolveTime;

        this.correctAddition    = new List <int> ();
        this.correctSubtraction = new List <int> ();
        this.wrongAddition      = new List <int> ();
        this.wrongSubtraction   = new List <int> ();

        this.allDistinct = new List <int> ();

        this.startTime = DateTime.Now;
    }
Beispiel #2
0
        public void Valid_SessionTopic_Create()
        {
            //Arrange
            SessionTopic newSessionTopic = new SessionTopic()
            {
                Name = "test1"
            };

            //convert with automapper
            var newSessionTopicViewModel = Mapper.Map <SessionTopic, SessionTopicViewModel>(newSessionTopic);

            //Act
            var result = (RedirectToRouteResult)objController.Create(newSessionTopicViewModel);


            //convert with automapper
            newSessionTopic = Mapper.Map <SessionTopicViewModel, SessionTopic>(newSessionTopicViewModel);


            //Assert
            _sessionTopicServiceMock.Verify(m => m.Create(newSessionTopic), Times.Never);
            Assert.AreEqual("Index", result.RouteValues["action"]);
        }
Beispiel #3
0
        public void CanAddSessionTopic()
        {
            //Arrange
            int          id  = 1;
            SessionTopic emp = new SessionTopic()
            {
                Name = "UK"
            };

            _mockRepository.Setup(m => m.Add(emp)).Returns((SessionTopic e) =>
            {
                e.Id = id;
                return(e);
            });


            //Act
            _service.Create(emp);

            //Assert
            Assert.AreEqual(id, emp.Id);
            _mockUnitWork.Verify(m => m.Commit(), Times.Once);
        }
    /// <summary>
    /// Takes all currently registered ghost blocks and checks their values to determine what topic the puzzle is.
    /// Also updates the stability number line based on the currently registered blocks' values.
    /// </summary>
    private void UpdateSession()
    {
        List <int>  denominators = new List <int> ();
        FractionSet fset         = new FractionSet();
        bool        similar      = true;
        bool        oddEquiv     = true;
        bool        evenEquiv    = true;

        int currentDenom = (int)hollowBlocks [0].GetDenominator();

        for (int i = 0; i < hollowBlocks.Count; i++)
        {
            denominators.Add((int)hollowBlocks[i].GetDenominator());
            FractionData fraction = hollowBlocks [i].GetFraction();

            if (i > 0)
            {
                if (similar && currentDenom == fraction.denominator)
                {
                    similar = true;
                }
                else
                {
                    similar = false;
                }

                if (evenEquiv && currentDenom % 2 == 0 && (currentDenom % fraction.denominator == 0 || fraction.denominator % currentDenom == 0 || (General.SimplifyFraction(fraction.numerator, fraction.denominator) [0] == 1.0f && General.SimplifyFraction(fraction.numerator, fraction.denominator) [1] == 2.0f)))
                {
                    evenEquiv = true;
                }
                else
                {
                    evenEquiv = false;
                }

                if (oddEquiv && currentDenom % 3 == 0 && (currentDenom % fraction.denominator == 0 || fraction.denominator % currentDenom == 0 || (General.SimplifyFraction(fraction.numerator, fraction.denominator) [0] == 1.0f && General.SimplifyFraction(fraction.numerator, fraction.denominator) [1] == 3.0f) || (General.SimplifyFraction(fraction.numerator, fraction.denominator) [0] == 2.0f && General.SimplifyFraction(fraction.numerator, fraction.denominator) [1] == 3.0f)))
                {
                    oddEquiv = true;
                }
                else
                {
                    oddEquiv = false;
                }

//				if (similar && fraction.denominator == (int)hollowBlocks [i - 1].GetDenominator ())
//					similar = true;
//				else
//					similar = false;
//
//				if (evenEquiv && (fraction.denominator % 2) == ((int)hollowBlocks [i - 1].GetDenominator () % 2))
//					evenEquiv = true;
//				else
//					evenEquiv = false;
//
//				if (oddEquiv && (fraction.denominator % 3) == ((int)hollowBlocks [i - 1].GetDenominator () % 3))
//					oddEquiv = true;
//				else
//					oddEquiv = false;
            }

            fset.fractions.Add(fraction);
        }

        if (similar)
        {
            topic = SessionTopic.SIMILAR;
        }
        else if (evenEquiv || oddEquiv)
        {
            topic = SessionTopic.EQUIVALENT;
        }
        else
        {
            topic = SessionTopic.DISSIMILAR;
        }

        this.currentSession = new StabilizationSession(topic, this.sceneAvgSolveTime);

        if (numberLine == null)
        {
            this.numberLine = FindObjectOfType <StabilityNumberLine> ();
        }

        FractionData target = this.stabilityController.UpdateStabilityNumberLine(hollowBlocks);

//		FractionData target = new FractionData ();
//		target.numerator = (int)numberLine.GetTargetNumerator ();
//		target.denominator = (int)numberLine.GetTargetDenominator ();

        foreach (FractionSet s in SubsetSumFractions.SubsetSum(fset, target))
        {
            additionRight.Add(s);
        }
    }
 public void SetTopic(SessionTopic topic)
 {
     this.topic = topic;
 }