public void CollisionFilterTest_CreateUnion() { //Union: GroupIndex will only be not 0 if both operands have the same GroupIndex var filter0 = new CollisionFilter { GroupIndex = 1 }; var filter1 = new CollisionFilter { BelongsTo = 1, CollidesWith = 1, GroupIndex = -1 }; var filter2 = new CollisionFilter { BelongsTo = 1, CollidesWith = 1, GroupIndex = 1 }; var filter3 = new CollisionFilter { BelongsTo = 0, CollidesWith = 0, GroupIndex = -1 }; var filter4 = new CollisionFilter { BelongsTo = 1, CollidesWith = 1, GroupIndex = 0 }; Assert.IsTrue(CollisionFilter.CreateUnion(CollisionFilter.Zero, CollisionFilter.Default) .Equals(CollisionFilter.Default)); Assert.IsTrue(CollisionFilter.CreateUnion(filter0, CollisionFilter.Zero).Equals(CollisionFilter.Zero)); Assert.IsTrue(CollisionFilter.CreateUnion(filter1, CollisionFilter.Zero).Equals(filter4)); Assert.IsTrue(CollisionFilter.CreateUnion(filter2, CollisionFilter.Zero).Equals(filter4)); Assert.IsTrue(CollisionFilter.CreateUnion(filter3, CollisionFilter.Zero).Equals(CollisionFilter.Zero)); Assert.IsTrue(CollisionFilter.CreateUnion(filter4, CollisionFilter.Zero).Equals(filter4)); Assert.IsTrue(CollisionFilter.CreateUnion(filter0, filter1).Equals(filter4)); Assert.IsTrue(CollisionFilter.CreateUnion(filter1, filter3).Equals(filter1)); Assert.IsTrue(CollisionFilter.CreateUnion(filter1, filter2).Equals(filter4)); Assert.IsTrue(CollisionFilter.CreateUnion(filter2, filter3).Equals(filter4)); Assert.IsTrue(CollisionFilter.CreateUnion(filter3, filter4).Equals(filter4)); }