public void HorizontalTimeOfCollisionTests() { Ball b1 = new Ball(1.0, 1.0, 5.0, 5.0, 1.0, 0.0); Ball b2 = new Ball(1.0, 1.0, 5.0, 5.0, -10.0, 0.0); HorizontalWall h1 = new HorizontalWall(10.0); HorizontalWall h2 = new HorizontalWall(-10.0); VerifyTimeOfCollision(b1, h1, true); VerifyTimeOfCollision(b1, h2, false); VerifyTimeOfCollision(b2, h1, false); VerifyTimeOfCollision(b2, h2, true); }
public void VerifyTimeOfCollision(Ball b1, HorizontalWall h, bool expectedToCollide) { double t1 = h.TimeOfCollision(b1); if (t1 > 0.0) { Assert.IsTrue(expectedToCollide); double y1 = b1.Y + b1.Vy * t1 + 0.5 * Globals.Gravity * t1 * t1; if (h.Y > b1.Y) { Assert.AreEqual(h.Y - b1.Radius, y1, 0.01); } else { Assert.AreEqual(h.Y + b1.Radius, y1, 0.01); } } else { Assert.IsFalse(expectedToCollide); } }