public void UnitNumberLetter(string data, string expectedResult)
        {
            var    unit       = new UnitNumber(data);
            string unitLetter = unit.Letter;

            Assert.Equal(expectedResult, unitLetter);
        }
        public void UnitNumberLetterNull(string data)
        {
            var    unit       = new UnitNumber(data);
            string unitLetter = unit.Letter;

            Assert.Equal(String.Empty, unitLetter);
        }
        public void UnitNumberInt(string data, int expectedResult)
        {
            var unit       = new UnitNumber(data);
            int roomNumber = unit.RoomNumber;

            Assert.Equal(expectedResult, roomNumber);
        }
Example #4
0
 public static UnitNumber Pow(UnitNumber number, double pow)
 {
     if (number.Unit.HasOffset)
     {
         throw new Exception("This numbers unit has offset and can not be raised to a power.");
     }
     return(new UnitNumber(System.Math.Pow(number.Number, pow), number.Unit.Pow(pow)));
 }
Example #5
0
        public void MultiplicationTest()
        {
            //40.33
            var unF = new UnitNumber(10, (F * F) / F);

            Assert.AreEqual(unF.Number, 10, 1e-3);
            Assert.AreEqual(unF.GetValue(C * C / C), 5.555555555555555555, 1e-8);
            var un2 = NumCm * NumM;

            Assert.AreEqual(un2.GetValue(cm * cm), 100, 1e-3);
            Assert.IsTrue(un2.Unit == cm * m);
        }
Example #6
0
 private ExecutionResult ExecuteUnitChange(ExecutionResult executionResult1, Unit unit)
 {
     if (executionResult1.DataType == DataType.Number)
     {
         var un = new UnitNumber((double)executionResult1.Value, unit);
         return(new ExecutionResult(un));
     }
     else if (executionResult1.DataType == DataType.UnitNumber)
     {
         var un = (UnitNumber)executionResult1.Value;
         un.SetUnit(unit);
         return(new ExecutionResult(un));
     }
     throw new Exception("Bad type");
 }
Example #7
0
        public IActionResult AddUnit(UnitNumber unitNumber)
        {
            if (ModelState.IsValid)
            {
                if (unitNumber.UnitNumberId == 0)
                {
                    var claimIdentity = (ClaimsIdentity)User.Identity;
                    var claims        = claimIdentity.FindFirst(ClaimTypes.NameIdentifier);

                    unitNumber.ApplicationUserId = claims.Value;
                    _db.UnitNumbers.Add(unitNumber);
                    unitNumber.IsTaken = false;
                }
                else
                {
                    _db.UnitNumbers.Update(unitNumber);
                }
                _db.SaveChanges();
            }
            return(RedirectToAction(nameof(Index)));
        }
Example #8
0
 public static UnitNumber Ceiling(UnitNumber number)
 {
     return(new UnitNumber(System.Math.Ceiling(number.Number), number.Unit));
 }
Example #9
0
 public static UnitNumber Abs(UnitNumber number)
 {
     return(new UnitNumber(System.Math.Abs(number.Number), number.Unit));
 }
Example #10
0
        public void CalculateTest()
        {
            UnitsCore uc   = new UnitsCore();
            var       inch = new Unit("in", Dimensions.Length, 0.0254);
            var       foot = new Unit("ft", 12 * inch);
            var       sec  = new Unit("s", Dimensions.Time, 1.0);
            var       min  = new Unit("min", Dimensions.Time, 60);
            var       cfm  = new Unit("CFM", foot.Pow(3) / min);

            uc.RegisterUnit(cfm);
            uc.RegisterUnit(inch);
            uc.RegisterUnit(foot);
            uc.RegisterUnit(sec);
            var oneFoot = new UnitNumber(1, foot);
            var ce      = new CalculationEngine(uc);
            var vars    = new Dictionary <string, ExecutionResult>();

            vars.Add("A", new ExecutionResult(1));
            vars.Add("B", new ExecutionResult(oneFoot));
            ExecutionResult result;

            //A number
            result = ce.Calculate("1.515");
            Assert.AreEqual(result.DataType, DataType.Number);
            Assert.AreEqual((double)result.Value, 1.515, 1e-8);
            //A number with unit
            result = ce.Calculate("1.0[ft]");
            Assert.AreEqual(result.DataType, DataType.UnitNumber);
            Assert.IsTrue((UnitNumber)result.Value == oneFoot);
            result = ce.Calculate("-1.0[ft]");
            Assert.AreEqual(result.DataType, DataType.UnitNumber);
            Assert.IsTrue((UnitNumber)result.Value == -oneFoot);
            //Unitless calculations
            result = ce.Calculate("1+0.515");
            Assert.AreEqual(result.DataType, DataType.Number);
            Assert.AreEqual((double)result.Value, 1.515, 1e-8);
            //Calculations with unit
            result = ce.Calculate("0.5[ft]+6[in]");
            Assert.AreEqual(result.DataType, DataType.UnitNumber);
            Assert.IsTrue((UnitNumber)result.Value == oneFoot);
            //Constant
            result = ce.Calculate("pi");
            Assert.AreEqual(result.DataType, DataType.Number);
            Assert.AreEqual((double)result.Value, Math.PI, 1e-8);
            result = ce.Calculate("-pi");
            Assert.AreEqual(result.DataType, DataType.Number);
            Assert.AreEqual((double)result.Value, -Math.PI, 1e-8);
            result = ce.Calculate("1-pi");
            Assert.AreEqual(result.DataType, DataType.Number);
            Assert.AreEqual((double)result.Value, 1 - Math.PI, 1e-8);
            //Variable
            result = ce.Calculate("B", vars);
            Assert.AreEqual(result.DataType, DataType.UnitNumber);
            Assert.IsTrue((UnitNumber)result.Value == oneFoot);
            result = ce.Calculate("-B", vars);
            Assert.AreEqual(result.DataType, DataType.UnitNumber);
            Assert.IsTrue((UnitNumber)result.Value == -oneFoot);
            result = ce.Calculate("1[ft]-B", vars);
            Assert.AreEqual(result.DataType, DataType.UnitNumber);
            Assert.IsTrue((UnitNumber)result.Value == oneFoot - oneFoot);
            //Function with number
            result = ce.Calculate("sin(3.1415926535897932384626433832795)", vars);
            Assert.AreEqual(result.DataType, DataType.Number);
            Assert.AreEqual((double)result.Value, Math.Sin(Math.PI), 1e-8);
            result = ce.Calculate("sin(3.1415926535897932384626433832795/3)", vars);
            Assert.AreEqual(result.DataType, DataType.Number);
            Assert.AreEqual((double)result.Value, Math.Sin(Math.PI / 3), 1e-8);
            //Function with constant
            result = ce.Calculate("sin(pi)", vars);
            Assert.AreEqual(result.DataType, DataType.Number);
            Assert.AreEqual((double)result.Value, Math.Sin(Math.PI), 1e-8);
            result = ce.Calculate("sin(pi/3)", vars);
            Assert.AreEqual(result.DataType, DataType.Number);
            Assert.AreEqual((double)result.Value, Math.Sin(Math.PI / 3), 1e-8);
            //Function with variable
            result = ce.Calculate("sin(A)", vars);
            Assert.AreEqual(result.DataType, DataType.Number);
            Assert.AreEqual((double)result.Value, Math.Sin(1.0), 1e-8);
        }
Example #11
0
 public static double Tanh(UnitNumber number)
 {
     return(System.Math.Tanh(number.Number));
 }
 public void UnitNumberStringConstructor()
 {
     var data = "#50 - Smith";
     var unit = new UnitNumber(data);
 }
Example #13
0
 public static double Sin(UnitNumber number)
 {
     return(System.Math.Sin(number.Number));
 }
Example #14
0
 public static double Cos(UnitNumber number)
 {
     return(System.Math.Cos(number.Number));
 }
Example #15
0
 public static UnitNumber Truncate(UnitNumber number)
 {
     return(new UnitNumber(System.Math.Truncate(number.Number), number.Unit));
 }
Example #16
0
 public static UnitNumber Round(UnitNumber number)
 {
     return(new UnitNumber(System.Math.Round(number.Number), number.Unit));
 }
Example #17
0
 int IComparable <Unit> .CompareTo(Unit otherUnit)
 {
     return(UnitNumber.CompareTo(otherUnit.UnitNumber));
 }
Example #18
0
        public IActionResult AddUnit()
        {
            var unit = new UnitNumber();

            return(View(unit));
        }
Example #19
0
 public static double Atan2(UnitNumber number1, UnitNumber number2)
 {
     return(System.Math.Atan2(number1.GetValueSi(), number2.GetValueSi()));
 }
Example #20
0
 public ExecutionResult(UnitNumber value)
 {
     Value    = value;
     DataType = DataType.UnitNumber;
 }
 public void RegisterConstant(string constantName, UnitNumber value, bool isOverWritable)
 {
     RegisterConstant(constantName, new ExecutionResult(value), isOverWritable);
 }
Example #22
0
 public static UnitNumber Floor(UnitNumber number)
 {
     return(new UnitNumber(System.Math.Floor(number.Number), number.Unit));
 }
Example #23
0
        public void Draw()
        {
            var width  = GameContent.UnitSprite[UnitType].Width;
            var height = GameContent.UnitSprite[UnitType].Height;

            var cube = HexGridMath.OffsetToCube(Col, Row);

            // center point
            var lnX = 60 * cube.X + GameContent.XOffset;
            var lnY = 35 * cube.X + cube.Z * 70 + GameContent.YOffset;

            Color nationalityColor;

            if (Nationality == NATIONALITY.USA)
            {
                if (Sleep)
                {
                    nationalityColor = new Color(129, 245, 129);
                }
                else
                {
                    nationalityColor = new Color(208, 254, 208);
                }
            }
            else
            {
                nationalityColor = new Color(221, 221, 221);
            }

            GameContent.Sb.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend);
            GameContent.Sb.Draw(GameContent.UnitSprite[UnitType], new Vector2(lnX - (int)(width / 2.0), lnY - (int)(height / 2.0)), nationalityColor);
            GameContent.Sb.End();

            if (IdleFlash)
            {
                GameContent.Sb.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend);
                GameContent.Sb.Draw(GameContent.UnitSprite[UnitType], new Vector2(lnX - (int)(width / 2.0), lnY - (int)(height / 2.0)), new Color(50, 200, 50));
                GameContent.Sb.End();
            }

            /*
             * if (RedHilight)
             * {
             *      GameContent.Sb.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend);
             *      GameContent.Sb.Draw(GameContent.UnitSprite[UnitType], new Vector2(lnX - (int)(width / 2.0), lnY - (int)(height / 2.0)), new Color(200, 100, 100));
             *      GameContent.Sb.End();
             * }
             *
             * if (GreenHilight)
             * {
             *      GameContent.Sb.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend);
             *      GameContent.Sb.Draw(GameContent.UnitSprite[UnitType], new Vector2(lnX - (int)(width / 2.0), lnY - (int)(height / 2.0)), new Color(100, 200, 100));
             *      GameContent.Sb.End();
             * }
             */
            if (Flash != null)
            {
                if (Flash.UnitHighlighted)
                {
                    GameContent.Sb.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend);
                    GameContent.Sb.Draw(GameContent.UnitSprite[UnitType], new Vector2(lnX - (int)(width / 2.0), lnY - (int)(height / 2.0)), Flash.HighlightColor);
                    GameContent.Sb.End();
                }
            }

            GameContent.Sb.Begin(SpriteSortMode.BackToFront, BlendState.AlphaBlend);

            // offense (upper left)
            GameContent.Sb.DrawString(GameContent.Arial10Font, Offense.ToString(), new Vector2(lnX - 20, lnY - 23), Color.Black, 0, new Vector2(0, 0), 1.0f, SpriteEffects.None, 0.5f);

            // defense (lower left)
            GameContent.Sb.DrawString(GameContent.Arial10Font, Defense.ToString(), new Vector2(lnX - 20, lnY + 8), Color.Black, 0, new Vector2(0, 0), 1.0f, SpriteEffects.None, 0.5f);

            // range (upper right)
            GameContent.Sb.DrawString(GameContent.Arial10Font, Range.ToString(), new Vector2(lnX + 22 - (int)(GameContent.Arial10Font.MeasureString(Range.ToString()).X), lnY - 23), Color.Black, 0, new Vector2(0, 0), 1.0f, SpriteEffects.None, 0.5f);

            // movement (lower right)
            GameContent.Sb.DrawString(GameContent.Arial10Font, Movement.ToString(), new Vector2(lnX + 22 - (int)(GameContent.Arial10Font.MeasureString(Movement.ToString()).X), lnY + 8), Color.Black, 0, new Vector2(0, 0), 1.0f, SpriteEffects.None, 0.5f);

            // unit number (temporary - upper center)
            GameContent.Sb.DrawString(GameContent.Arial6Font, UnitNumber.ToString(), new Vector2(lnX - (int)(GameContent.Arial6Font.MeasureString(UnitNumber.ToString()).X / 2.0), lnY - 22), Color.Red, 0, new Vector2(0, 0), 1.0f, SpriteEffects.None, 0.5f);

            GameContent.Sb.End();
        }