public void IsOffspring() { Task child_1 = new Task(); Task child_2 = new Task(); Task parent_1 = new Task(); Task parent_2 = new Task(); Task grand_parent = new Task(); Task other = new Task(); parent_1.AddChild(child_1); parent_1.AddChild(child_2); grand_parent.AddChild(parent_1); grand_parent.AddChild(parent_2); Assert.That(child_1.IsOffspring(parent_1), Is.True); Assert.That(child_2.IsOffspring(parent_1), Is.True); Assert.That(parent_1.IsOffspring(parent_1), Is.False); Assert.That(parent_2.IsOffspring(parent_1), Is.False); Assert.That(grand_parent.IsOffspring(parent_1), Is.False); Assert.That(other.IsOffspring(parent_1), Is.False); Assert.That(child_1.IsOffspring(parent_2), Is.False); Assert.That(child_2.IsOffspring(parent_2), Is.False); Assert.That(parent_1.IsOffspring(parent_2), Is.False); Assert.That(parent_2.IsOffspring(parent_2), Is.False); Assert.That(grand_parent.IsOffspring(parent_1), Is.False); Assert.That(other.IsOffspring(parent_1), Is.False); Assert.That(child_1.IsOffspring(grand_parent), Is.True); Assert.That(child_2.IsOffspring(grand_parent), Is.True); Assert.That(parent_1.IsOffspring(grand_parent), Is.True); Assert.That(parent_2.IsOffspring(grand_parent), Is.True); Assert.That(grand_parent.IsOffspring(grand_parent), Is.False); Assert.That(other.IsOffspring(grand_parent), Is.False); }