Author: alanmc
Date: 2007-01-13 10:44:45 -0500 (Sat, 13 Jan 2007)
New Revision: 70957

Added:
   trunk/Mono.Xna/tests/Microsoft.Xna.Framework/RayTests.cs
Log:
Created new Ray tests

Added: trunk/Mono.Xna/tests/Microsoft.Xna.Framework/RayTests.cs
===================================================================
--- trunk/Mono.Xna/tests/Microsoft.Xna.Framework/RayTests.cs    2007-01-13 
15:44:32 UTC (rev 70956)
+++ trunk/Mono.Xna/tests/Microsoft.Xna.Framework/RayTests.cs    2007-01-13 
15:44:45 UTC (rev 70957)
@@ -0,0 +1,176 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using NUnit.Framework;
+using Microsoft.Xna.Framework;
+using System.Threading;
+using System.Globalization;
+
+namespace XnaNUnits
+{
+    [TestFixture]
+    public class RayTests
+    {
+        private Ray r1;
+        private Ray r2;
+        private Ray r3;
+        private Ray r4;
+
+
+        [SetUp]
+        public void Setup()
+        {
+            r1 = new Ray();
+            r2 = new Ray(new Vector3(1, 2, 3), new Vector3(4, 5, 6));
+            r3 = new Ray(new Vector3(2.25f, 3.754321f, 4.387f), new 
Vector3(-1, -1, -1));
+            r4 = new Ray(new Vector3(1, 1, 1), new Vector3(1, 1, 1));
+        }
+
+
+        [Test]
+        public void ConstructorTests()
+        {
+            Assert.AreEqual(0, r1.Direction.X, "#1");
+            Assert.AreEqual(0, r1.Direction.Y, "#2");
+            Assert.AreEqual(0, r1.Direction.Z, "#3");
+
+            Assert.AreEqual(0, r1.Position.X, "#4");
+            Assert.AreEqual(0, r1.Position.Y, "#5");
+            Assert.AreEqual(0, r1.Position.Z, "#6");
+
+            Assert.AreEqual(4, r2.Direction.X, "#7");
+            Assert.AreEqual(5, r2.Direction.Y, "#8");
+            Assert.AreEqual(6, r2.Direction.Z, "#9");
+
+            Assert.AreEqual(1, r2.Position.X, "#10");
+            Assert.AreEqual(2, r2.Position.Y, "#11");
+            Assert.AreEqual(3, r2.Position.Z, "#12");    
+        }
+
+
+        [Test]
+        public void EqualsTest()
+        {
+            int a = 6;
+            
+            Assert.IsTrue(r1.Equals(r1), "#1");
+            Assert.IsFalse(r1.Equals(null), "#2");
+            Assert.IsFalse(r1.Equals(a), "#3");
+            Assert.IsTrue(r1 == r1, "#4");
+            Assert.IsFalse(r1.Equals(r2), "#5");
+            Assert.IsFalse(r1.Equals(r3), "#6");
+            Assert.IsFalse(r2.Equals(r3), "#7");
+            Assert.IsTrue(r1 != r2, "#8");
+
+            Ray test = new Ray(new Vector3(1, 2, 3), new Vector3(4, 5, 6));
+
+            Assert.IsTrue(test == r2, "#9");
+            Assert.IsTrue(test.Equals(r2), "#10");
+
+            Ray bigger = new Ray(new Vector3(1, 1, 1), new Vector3(2, 2, 2));
+            Assert.AreNotEqual(r4, bigger);
+        }
+
+
+        [Test]
+        public void IntersectsBoundingBoxTest()
+        {
+            BoundingBox b1 = new BoundingBox(new Vector3(-1, -1, -1), new 
Vector3(1, 1, 1));
+            BoundingBox b2 = new BoundingBox(new Vector3(2, 2, 2), new 
Vector3(4, 4, 4));
+            BoundingBox b3 = new BoundingBox(new Vector3(-1, -1, -1), new 
Vector3(0, 0, 0));
+            BoundingBox b4 = new BoundingBox(new Vector3(3.5f, 3.5f, 3.5f), 
new Vector3(77, 77, 77));
+
+            float? result;
+            result = r1.Intersects(b1);
+            Assert.AreEqual(0, result, "#1");
+
+            result = r1.Intersects(b2);
+            Assert.AreEqual(null, result, "#2");
+
+            result = r1.Intersects(b3);
+            Assert.AreEqual(0, result, "#3");
+
+
+            result = r2.Intersects(b1);
+            Assert.AreEqual(null, result, "#4");
+
+            result = r2.Intersects(b2);
+            Assert.AreEqual(null, result, "#5");
+
+            result = r2.Intersects(b3);
+            Assert.AreEqual(null, result, "#6");
+
+            result = r2.Intersects(b4);
+            Assert.AreEqual(0.625f, result, "#7");
+
+            result = r4.Intersects(b4);
+        }
+
+
+        [Test]
+        public void IntersectsBoundingFrustumTest()
+        {
+            float? result;
+            Ray intersects = new Ray(new Vector3(0, 0, 0), new Vector3(0, 1, 
0));
+
+            BoundingFrustum f1 = new BoundingFrustum(new Matrix(100, 2, 3, 1, 
5, 3, 7, 21, 2, 5, 1, 5, 4, 4, 2, 1));
+
+            result = r4.Intersects(f1);
+            Assert.AreEqual(null, result);
+
+            result = intersects.Intersects(f1);
+            Assert.AreEqual(0.1875, result);
+        }
+
+
+        [Test]
+        public void IntersectsBoundingSphereTest()
+        {
+            BoundingSphere s1 = new BoundingSphere();
+            BoundingSphere s2 = new BoundingSphere(new Vector3(2, 2, 2), 2);
+            BoundingSphere s3 = new BoundingSphere(new Vector3(5, 5, 5), 3);
+            float? result;
+
+            result = r1.Intersects(s1);
+            Assert.AreEqual(0, result, "#1");
+
+            result = r1.Intersects(s2);
+            Assert.AreEqual(null, result, "#2");
+
+            result = r1.Intersects(s3);
+            Assert.AreEqual(null, result, "#3");
+
+            result = r2.Intersects(s1);
+            Assert.AreEqual(null, result, "#4");
+
+            result = r2.Intersects(s2);
+            Assert.AreEqual(0, result, "#5");
+
+            result = r2.Intersects(s3);
+            Assert.IsTrue(TestHelper.ApproximatelyEquals(0.233188629f, 
result), "#6");
+
+            result = r3.Intersects(s1);
+            Assert.IsTrue(TestHelper.ApproximatelyEquals(2.05007648f, result), 
"#7");
+
+            result = r3.Intersects(s2);
+            Assert.IsTrue(TestHelper.ApproximatelyEquals(0.590559483f, 
result), "#8");
+
+            result = r3.Intersects(s3);
+            Assert.AreEqual(null, result, "#9");
+        }
+
+
+        [Test]
+        public void ToStringTest()
+        {
+            Assert.AreEqual("{Position:{X:0 Y:0 Z:0} Direction:{X:0 Y:0 
Z:0}}", r1.ToString(), "#1");
+            Assert.AreEqual("{Position:{X:1 Y:2 Z:3} Direction:{X:4 Y:5 
Z:6}}", r2.ToString(), "#2");
+            System.Globalization.CultureInfo a = 
System.Globalization.CultureInfo.GetCultureInfo("DE");
+
+            Assert.AreEqual("{Position:{X:2.25 Y:3.754321 Z:4.387} 
Direction:{X:-1 Y:-1 Z:-1}}", r3.ToString(), "#3");
+
+            Thread.CurrentThread.CurrentCulture = 
CultureInfo.GetCultureInfo("de-DE");
+            Assert.AreEqual("{Position:{X:2,25 Y:3,754321 Z:4,387} 
Direction:{X:-1 Y:-1 Z:-1}}", r3.ToString(), "#4");
+        }
+    }
+}


Property changes on: trunk/Mono.Xna/tests/Microsoft.Xna.Framework/RayTests.cs
___________________________________________________________________
Name: svn:eol-style
   + native

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to