Example #1
0
        public void GetArgumentExceptionCircleAreaFromRadius(float radius,
                                                             CircleParametrType parametrType)
        {
            circleCalculator = new CircleCalculator(parametrType, radius: radius);

            AssertThrows();
        }
        public void CalculateTotalCircleAreas()
        {
            // Arrange
            const double expectedResult = 78.539;

            List <Circle> circles = new List <Circle>
            {
                new Circle()
                {
                    Radius = 3
                },
                new Circle
                {
                    Radius = 4
                }
            };

            _circleRepository.Setup(m => m.GetAll()).Returns(circles);

            CircleCalculator calculator = new CircleCalculator(_circleRepository.Object);

            // Act
            var result = calculator.GetSumCalculatedAreas();

            // Assert
            result.Should().BeApproximately(expectedResult, ExpectedPrecision);
        }
Example #3
0
        public void GetArgumentExceptionCircleAreaFromLength(float length,
                                                             CircleParametrType parametrType)
        {
            circleCalculator = new CircleCalculator(parametrType, length: length);

            AssertThrows();
        }
Example #4
0
        public void GetCircleAreaFromLength(double length,
                                            CircleParametrType parametrType,
                                            double result)
        {
            circleCalculator = new CircleCalculator(parametrType, length: length);

            AssertResult(result);
        }
Example #5
0
        public void GetCircleAreaFromDiametr(double diametr,
                                             CircleParametrType parametrType,
                                             double result)
        {
            circleCalculator = new CircleCalculator(parametrType, diametr: diametr);

            AssertResult(result);
        }
Example #6
0
        public void GetCircleAreaFromRadius(double radius,
                                            CircleParametrType parametrType,
                                            double result)
        {
            circleCalculator = new CircleCalculator(parametrType, radius: radius);

            AssertResult(result);
        }
Example #7
0
        private BoardObject[] getBoardObjectsInView(Coordinates antCoords, int viewRange)
        {
            BoardObject[] result = new BoardObject[0];
            Coordinates[] coords = CircleCalculator.calculatePartCircle(viewRange);
            for (int i = 0; i < coords.Length; i++)
            {
                addBoardObjectsToArrayForPartCoordinates(coords[i], antCoords, viewRange, ref result);
            }

            return(result);
        }
        public double ComputeTotalArea()
        {
            double totalComputedArea = 0;

            totalComputedArea += new CircleCalculator(_repositories.Circles).GetSumCalculatedAreas();
            totalComputedArea += new RectangleCalculator(_repositories.Rectangles).GetSumCalculatedAreas();
            totalComputedArea += new SquareCalculator(_repositories.Squares).GetSumCalculatedAreas();
            totalComputedArea += new TriangleCalculator(_repositories.Triangles).GetSumCalculatedAreas();

            return(totalComputedArea);
        }
Example #9
0
    void UpdatePosistion()
    {
        SpeederPosition = Mathf.Clamp01(SpeederPosition + (AutoDrive ? 1f : -1.5f) * Time.fixedDeltaTime);
        if (Math.Abs(SpeederPosition) < 0.001f)
        {
            return;
        }
        Velocity = Acc.Evaluate(SpeederPosition) * Speed;

        var distUpdate = Velocity * Time.fixedDeltaTime;
        var current    = transform.position;
        var mid        = Track.GetPointAtDistance(_distanceTravelled + distUpdate / 2f);
        var next       = Track.GetPointAtDistance(_distanceTravelled += distUpdate);

        LookAt2D(next);
        transform.position = next;

        var dir = CircleCalculator.Direction.Straight;
        var c   = CircleCalculator.CalculateCircleCenter(current, mid, next, out dir);

        if (c.HasValue)
        {
            Center.transform.position = c.Value;
        }

        var curvature = CircleCalculator.CalculateCurvature(current, mid, next);
        var dirValue  = dir == CircleCalculator.Direction.Left ? -1
            : dir == CircleCalculator.Direction.Right ? 1 : 0;

        Force = curvature * Velocity * ForceSensetivity * dirValue;

        Debug.DrawRay(mid, (mid - Center.transform.position).normalized * Mathf.Abs(Force), Color.green, 4);

        if (Mathf.Abs(Force) > 1f)
        {
            CarOffTrack(dirValue);
        }
    }
Example #10
0
 public void GetArgumentExceptionCircleAreaFromDiametr(float diametr,
                                                       CircleParametrType parametrType)
 {
     circleCalculator = new CircleCalculator(parametrType, diametr: diametr);
     AssertThrows();
 }