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);
        }