public void TestSTIsValidTrajectory()
        {
            using (var db = new PostGisTestDataConnection(TestDatabaseConnectionString))
            {
                db.TestGeometries
                .Value(g => g.Id, 1)
                .Value(g => g.Geometry, () =>
                       GeometryConstructors.STMakeLine(
                           GeometryConstructors.STMakePointM(0, 0, 1),
                           GeometryConstructors.STMakePointM(0, 1, 2)))
                .Insert();

                db.TestGeometries
                .Value(g => g.Id, 2)
                .Value(g => g.Geometry, () =>
                       GeometryConstructors.STMakeLine(
                           GeometryConstructors.STMakePointM(0, 0, 1),
                           GeometryConstructors.STMakePointM(0, 1, 0)))
                .Insert();

                db.TestGeometries.Value(g => g.Id, 3)
                .Value(g => g.Geometry, () => null)
                .Insert();

                Assert.IsTrue(db.TestGeometries
                              .Where(g => g.Id == 1)
                              .Select(g => g.Geometry.STIsValidTrajectory()).Single());

                Assert.IsFalse(db.TestGeometries
                               .Where(g => g.Id == 2)
                               .Select(g => g.Geometry.STIsValidTrajectory())
                               .Single());

                Assert.IsNull(db.TestGeometries
                              .Where(g => g.Id == 3)
                              .Select(g => g.Geometry.STIsValidTrajectory())
                              .Single());

                Assert.IsTrue(db.Select(() => TrajectoryFunctions.STIsValidTrajectory("LINESTRING(0 0 0 1,0 1 0 2)")));
                Assert.IsFalse(db.Select(() => TrajectoryFunctions.STIsValidTrajectory("POINT(0 0)")));
            }
        }