public void ShouldGenerateDifferentHashCodes3D()
        {
            var point1 = new CypherPoint(1, 135.37340722, 11.92245761, 35.1201208);
            var point2 = new CypherPoint(1, 135.37340722, 11.92245761, 35.1201209);

            point1.GetHashCode().Should().NotBe(point2.GetHashCode());
        }
        public void ShouldGenerateDifferentHashCodes2DAnd3D()
        {
            var point1 = new CypherPoint(1, 135.37340722, 11.92245761);
            var point2 = new CypherPoint(1, 135.37340722, 11.92245761, double.NaN);

            point1.GetHashCode().Should().NotBe(point2.GetHashCode());
        }
        public void ShouldGenerateIdenticalHashCodes2D()
        {
            var point1 = new CypherPoint(1, 135.37340722, 11.92245761);
            var point2 = new CypherPoint(1, 135.37340722, 11.92245761);

            point1.GetHashCode().Should().Be(point2.GetHashCode());
        }
        public void ShouldGenerateIdenticalHashCodes3DWhenZisNaN()
        {
            var point1 = new CypherPoint(1, 135.37340722, 11.92245761, double.NaN);
            var point2 = new CypherPoint(1, 135.37340722, 11.92245761, double.NaN);

            point1.GetHashCode().Should().Be(point2.GetHashCode());
        }