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()); }
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); } }
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(); }
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); }