public void test_arc_height()
    {
        var transform = new PathTransform();
        var instance = fixture();
        var spawned = new SpawnedObject() {GameObject = mobile};
        target.transform.position = new Vector3(0f, 0f, 10f);

        curve.elapsed = 0f;
        instance.Update(curve, transform, spawned);
        Assert(transform.position == new Vector3(0f, 0f, 0f));

        curve.elapsed = 2.5f;
        curve.Delta = 2.5f;
        instance.Update(curve, transform, spawned);
        Assert((transform.position - new Vector3(0f, 7.071068f, 2.5f)).magnitude < 0.001f);

        curve.elapsed = 5f;
        curve.Delta = 5f;
        instance.Update(curve, transform, spawned);
        Assert(transform.position == new Vector3(0f, 10f, 5f));

        curve.elapsed = 10.0f;
        curve.Delta = 10.0f; // We never apply to the gameObject, so it doesn't step
        instance.Update(curve, transform, spawned);
        Assert((transform.position - new Vector3(0f, 0f, 10f)).magnitude < 0.001f);

        this.TearDown();
    }
    public void test_fixed_path_with_moving_target()
    {
        var transform = new PathTransform();
        var instance = fixture();
        var spawned = new SpawnedObject() {GameObject = mobile};
        target.transform.position = new Vector3(0f, 0f, 10f);
        curve.elapsed = 0f;
        instance.Update(curve, transform, spawned);

        Assert(transform.position == new Vector3(0f, 0f, 0f));

        curve.elapsed = 5f;
        curve.Delta = 5f;
        instance.Update(curve, transform, spawned);
        Assert(transform.position == new Vector3(0f, 0f, 5f));

        this.TearDown();
    }