public void ShouldFindShapesThatContainsTheSpecifiedPoint()
        {
            GFTApplication.ShapesContainer container = new ShapesContainer();

            GFTApplication.Models.Circle    circle    = new Models.Circle(1.7f, -5.05f, 6.9f);
            GFTApplication.Models.Square    square    = new Models.Square(3.55f, 4.1f, 2.77f);
            GFTApplication.Models.Rectangle rectangle = new Models.Rectangle(3.5f, 2.0f, 5.6f, 7.2f);
            GFTApplication.Models.Triangle  triangle  = new Models.Triangle(4.5f, 1, -2.5f, -33, 23, 0.3f);
            GFTApplication.Models.Donut     donut     = new Models.Donut(4.5f, 7.8f, 1.5f, 1.8f);

            circle.Id    = 1;
            square.Id    = 2;
            rectangle.Id = 3;
            triangle.Id  = 4;
            donut.Id     = 5;

            container.AddShape(circle);
            container.AddShape(square);
            container.AddShape(rectangle);
            container.AddShape(triangle);
            container.AddShape(donut);

            List <string> shouldBe = new List <string>();

            shouldBe.Add("shape 1: circle with center at (1.7, -5.05) and radius 6.9 | Area: 149.571230371968");
            shouldBe.Add("shape 4: triangle with coordinates at (4.5 1, -2.5 -33, 23 0.3) | Area: 316.950012207031");
            shouldBe.Add("Total Area of shapes: 466.521242578999");

            CollectionAssert.AreEqual(shouldBe, container.FindInPoint(1.5f, -5).ToList());
        }
        public void ShouldReturnReturnAStringListWithAllTheShapes()
        {
            GFTApplication.ShapesContainer container = new ShapesContainer();

            GFTApplication.Models.Circle    circle    = new Models.Circle(1.7f, -5.05f, 6.9f);
            GFTApplication.Models.Square    square    = new Models.Square(3.55f, 4.1f, 2.77f);
            GFTApplication.Models.Rectangle rectangle = new Models.Rectangle(3.5f, 2.0f, 5.6f, 7.2f);
            GFTApplication.Models.Triangle  triangle  = new Models.Triangle(4.5f, 1, -2.5f, -33, 23, 0.3f);
            GFTApplication.Models.Donut     donut     = new Models.Donut(4.5f, 7.8f, 1.5f, 1.8f);

            circle.Id    = 1;
            square.Id    = 2;
            rectangle.Id = 3;
            triangle.Id  = 4;
            donut.Id     = 5;

            container.AddShape(circle);
            container.AddShape(square);
            container.AddShape(rectangle);
            container.AddShape(triangle);
            container.AddShape(donut);

            List <string> shouldBe = new List <string>();

            shouldBe.Add("shape 1: circle with center at (1.7, -5.05) and radius 6.9");
            shouldBe.Add("shape 2: square with center at (3.55, 4.1) and side 2.77");
            shouldBe.Add("shape 3: rectangle with center at (3.5, 2) and side1 5.6, side2 7.2");
            shouldBe.Add("shape 4: triangle with coordinates at (4.5 1, -2.5 -33, 23 0.3)");
            shouldBe.Add("shape 5: donut with center at (4.5, 7.8) and radius1 1.5, radius2 1.8");

            CollectionAssert.AreEqual(shouldBe, container.GetShapeList().ToList());
        }
Ejemplo n.º 3
0
        public void ShopuldReturnARectangle()
        {
            GFTApplication.Models.Rectangle rectangle = new Models.Rectangle(3.5f, 2.0f, 5.6f, 7.2f);
            var real = GFTApplication.Interpreter.TokenReader.ReadToken("rectangle 3.5 2.0 5.6 7.2");

            rectangle.Id = 1;
            real.Id      = 1;
            Assert.AreEqual(rectangle.ToString(), real.ToString());
        }
        private void ParseOutputRectangles(string[] output_lines)
        {
            GameObject board = null;

            totalBoardsTxt.text = output_lines[0];
            areaWasteTxt.text   = output_lines[1];
            for (int i = 3; i < output_lines.Length; ++i)
            {
                string[] words = output_lines[i].Split(' ');
                if (words.Length == 2)
                {
                    // Format: Plancha 1
                    board = Instantiate(boardPrefab, transform);
                    var boardGrid = board.transform.GetChild(0);
                    boardGrid.localScale = gridScale;
                    board.SetActive(false);
                    storeBoardsComponent.Boards.Add(board);
                }
                else
                {
                    // Format: A1 150 154 G
                    var           id       = words[0];
                    var           formatId = Regex.Replace(id, @"[\d]", string.Empty);
                    Models.Format format   = formats[formatId];
                    float         width    = formats[formatId].Width;
                    float         height   = formats[formatId].Height;
                    var           x        = float.Parse(words[1]);
                    var           y        = float.Parse(words[2]);
                    var           rotated  = words[3] == "N" ? false : true;
                    if (rotated)
                    {
                        (width, height) = (height, width);
                    }
                    var area = new Rect
                    {
                        x      = x,
                        y      = y,
                        width  = width,
                        height = height
                    };
                    // Rectangles Transform GameObject
                    var rectanglesTransform      = board.transform.GetChild(1);
                    var storeRectanglesComponent = rectanglesTransform.GetComponent <StoreRectanglesComponent>();
                    var rectangle = new Models.Rectangle()
                    {
                        id   = id,
                        area = area
                    };
                    storeRectanglesComponent.CreateRectangle(rectangle);
                }
            }
            if (storeBoardsComponent.Boards.Count > 0)
            {
                storeBoardsComponent.Boards[0].SetActive(true);
            }
        }
Ejemplo n.º 5
0
        private string RectToPath(Models.Rectangle rect)
        {
            var a = $"{FormatNumber(rect.North)},{FormatNumber(rect.East)}";
            var b = $"{FormatNumber(rect.North)},{FormatNumber(rect.West)}";
            var c = $"{FormatNumber(rect.South)},{FormatNumber(rect.West)}";
            var d = $"{FormatNumber(rect.South)},{FormatNumber(rect.East)}";
            var e = $"{FormatNumber(rect.North)},{FormatNumber(rect.East)}";

            return($"{a}|{b}|{c}|{d}|{e}");
        }
        public void ShouldAddAShapeAndReturnTheCorrectPrint()
        {
            GFTApplication.ShapesContainer  container = new ShapesContainer();
            GFTApplication.Models.Rectangle rectangle = new Models.Rectangle(3.5f, 2.0f, 5.6f, 7.2f);

            rectangle.Id = 1;

            var ans = container.AddShape(rectangle);

            Assert.AreEqual("shape 1: rectangle with center at (3.5, 2) and side1 5.6, side2 7.2", ans);
        }
        public void ShouldBeAbleToDeleteAShapeById()
        {
            GFTApplication.ShapesContainer  container = new ShapesContainer();
            GFTApplication.Models.Rectangle rectangle = new Models.Rectangle(3.5f, 2.0f, 5.6f, 7.2f);

            rectangle.Id = 1;

            container.AddShape(rectangle);

            var ans = container.deleteShape(1);

            Assert.AreEqual("String with id 1 was removed.", ans);
        }
        public void CreateRectangle(Models.Rectangle rectangle)
        {
            transform.position = new Vector2(-grid.transform.localScale.x / 2f, grid.transform.localScale.y / 2f);
            GameObject rectangleObject = Instantiate(rectanglePrefab, transform);

            rectangleObject.transform.localScale = rectangle.area.size;
            var offsetPosition = new Vector2(
                rectangle.area.position.x + rectangle.area.width / 2f,
                -(rectangle.area.position.y + rectangle.area.height / 2f)
                );

            rectangleObject.transform.localPosition = offsetPosition;
            rectangleObject.GetComponent <IdComponent>().ChangeIdText(rectangle.id);
            rectangleObject.GetComponent <SpriteRenderer>().color = UnityEngine.Random.ColorHSV();
        }
Ejemplo n.º 9
0
        public async Task <Stream> GetMap(Models.Rectangle rect, int width, int height, int zoom)
        {
            float lat = (rect.North + rect.South) / 2;
            float lng = (rect.East + rect.West) / 2;

            HttpClient client = new HttpClient();

            client.BaseAddress = new Uri(_options.StaticApiEndpoint);
            string url = $"staticmap?center={FormatNumber(lat)},{FormatNumber(lng)}" +
                         $"&zoom={zoom}&size={width}x{height}" +
                         $"&path=color:0xff0000ff|weight:2|{RectToPath(rect)}" +
                         $"&key={_options.ApiKey}";

            var result = await client.GetAsync(url);

            var arr = await result.Content.ReadAsStreamAsync();

            return(arr);
        }