BoundingBoxTests.cs
上传用户:sex100000
上传日期:2013-11-09
资源大小:1377k
文件大小:4k
源码类别:

GIS编程

开发平台:

C#

  1. using System;
  2. using NUnit.Framework;
  3. using SharpMap.Geometries;
  4. namespace UnitTests.Geometries
  5. {
  6. [TestFixture]
  7. public class BoundingBoxTests
  8. {
  9. [Test]
  10. public void TestJoin()
  11. {
  12. BoundingBox b1 = new BoundingBox(20, 30, 40, 50);
  13. BoundingBox b2 = new BoundingBox(-20, 56, 70, 75);
  14. BoundingBox bJoined = new BoundingBox(-20, 30, 70, 75);
  15. Assert.AreEqual(bJoined,b1.Join(b2));
  16. BoundingBox box = null;
  17. Assert.AreEqual(b1, b1.Join(box));
  18. Assert.AreEqual(bJoined, BoundingBox.Join(b1,b2));
  19. Assert.AreEqual(b2, BoundingBox.Join(null,b2));
  20. Assert.AreEqual(b1, BoundingBox.Join(b1, null));
  21. Assert.AreEqual(bJoined, BoundingBox.Join(b2, b1));
  22. }
  23. [Test]
  24. public void TestVarious()
  25. {
  26. BoundingBox b1 = new BoundingBox(20, 30, 40, 55);
  27. Assert.AreEqual(20, b1.Left);
  28. Assert.AreEqual(20, b1.Min.X);
  29. Assert.AreEqual(40, b1.Right);
  30. Assert.AreEqual(40, b1.Max.X);
  31. Assert.AreEqual(30, b1.Bottom);
  32. Assert.AreEqual(30, b1.Min.Y);
  33. Assert.AreEqual(55, b1.Top);
  34. Assert.AreEqual(55, b1.Max.Y);
  35. Assert.AreEqual(20, b1.Width);
  36. Assert.AreEqual(25, b1.Height);
  37. Assert.AreNotSame(b1, b1.Clone());
  38. Assert.IsTrue(b1.Contains(new Point(30, 40)));
  39. Assert.IsTrue(b1.Contains(new Point(20, 40)));
  40. Assert.IsFalse(b1.Contains(new Point(10, 10)));
  41. Assert.IsFalse(b1.Contains(new Point(50, 60)));
  42. Assert.IsFalse(b1.Contains(new Point(30, 60)));
  43. Assert.IsFalse(b1.Contains(new Point(50, 40)));
  44. Assert.IsFalse(b1.Contains(new Point(30, 15)));
  45. Assert.IsTrue(b1.Equals(new BoundingBox(20, 30, 40, 55)));
  46. Assert.AreEqual(new Point(30, 42.5), b1.GetCentroid());
  47. Assert.AreEqual(1, b1.LongestAxis);
  48. Assert.AreEqual(new BoundingBox(19, 29, 41, 56), b1.Grow(1));
  49. Assert.IsFalse(b1.Equals(null));
  50. Assert.IsFalse(b1.Equals((object)new Polygon()));
  51. Assert.AreEqual("20,30 40,55", b1.ToString());
  52. Assert.AreEqual(b1,new BoundingBox(40,55,20,30));
  53. Assert.AreEqual(Math.Sqrt(200), b1.Distance(new BoundingBox(50,65,60,75)));
  54. }
  55. [Test]
  56. public void TestIntersect()
  57. {
  58. //Test disjoint
  59. BoundingBox b1 = new BoundingBox(0, 0, 10, 10);
  60. BoundingBox b2 = new BoundingBox(20, 20, 30, 30);
  61. Assert.IsFalse(b1.Intersects(b2), "Bounding box intersect test 1a failed");
  62. Assert.IsFalse(b2.Intersects(b1), "Bounding box intersect test 1a failed");
  63. b1 = new BoundingBox(0, 0, 10, 10);
  64. b2 = new BoundingBox(0, 20, 10, 30);
  65. Assert.IsFalse(b1.Intersects(b2), "Bounding box intersect test 1b failed");
  66. Assert.IsFalse(b2.Intersects(b1), "Bounding box intersect test 1b failed");
  67. b1 = new BoundingBox(0, 0, 10, 10);
  68. b2 = new BoundingBox(20, 0, 30, 10);
  69. Assert.IsFalse(b1.Intersects(b2), "Bounding box intersect test 1c failed");
  70. Assert.IsFalse(b2.Intersects(b1), "Bounding box intersect test 1c failed");
  71. //Test intersects
  72. b1 = new BoundingBox(0, 0, 10, 10);
  73. b2 = new BoundingBox(5, 5, 15, 15);
  74. Assert.IsTrue(b1.Intersects(b2), "Bounding box intersect test 2 failed");
  75. Assert.IsTrue(b2.Intersects(b1), "Bounding box intersect test 2 failed");
  76. //Test overlaps
  77. b1 = new BoundingBox(0, 0, 10, 10);
  78. b2 = new BoundingBox(-5, -5, 15, 15);
  79. Assert.IsTrue(b1.Intersects(b2), "Bounding box intersect test 3 failed");
  80. Assert.IsTrue(b2.Intersects(b1), "Bounding box intersect test 3 failed");
  81. //Test touches
  82. b1 = new BoundingBox(0, 0, 10, 10);
  83. b2 = new BoundingBox(10, 0, 20, 10);
  84. Assert.IsTrue(b1.Intersects(b2), "Bounding box intersect test 4a failed");
  85. Assert.IsTrue(b2.Intersects(b1), "Bounding box intersect test 4a failed");
  86. //Test touches 2
  87. b1 = new BoundingBox(0, 0, 10, 10);
  88. b2 = new BoundingBox(10, 10, 20, 20);
  89. Assert.IsTrue(b1.Intersects(b2), "Bounding box intersect test 4b failed");
  90. Assert.IsTrue(b2.Intersects(b1), "Bounding box intersect test 4b failed");
  91. //Test equal
  92. b1 = new BoundingBox(0, 0, 10, 10);
  93. b2 = new BoundingBox(0, 0, 10, 10);
  94. Assert.IsTrue(b1.Intersects(b2), "Bounding box intersect test 5 failed");
  95. Assert.IsTrue(b2.Intersects(b1), "Bounding box intersect test 5 failed");
  96. }
  97. }
  98. }