protected bool ParseResult(string result, XmlTest xmlTestItem)
        {
            switch (xmlTestItem.TestType)
            {
            // Here we expect double
            case XmlTestType.Area:
            case XmlTestType.Distance:
            case XmlTestType.Length:
            case XmlTestType.MinClearance:
            {
                try
                {
                    xmlTestItem.Result = double.Parse(result, GetNumberFormatInfo());
                    return(true);
                }
                catch (Exception ex)
                {
                    XmlTestExceptionManager.Publish(ex);
                    return(false);
                }
            }

            // Here we expect integer
            case XmlTestType.BoundaryDimension:
            case XmlTestType.Dimension:
            case XmlTestType.NumPoints:
            case XmlTestType.SRID:
            {
                try
                {
                    xmlTestItem.Result = int.Parse(result);
                    return(true);
                }
                catch (Exception ex)
                {
                    XmlTestExceptionManager.Publish(ex);
                    return(false);
                }
            }

            // Here we expect a point
            case XmlTestType.Boundary:
            case XmlTestType.Buffer:
            case XmlTestType.BufferMitredJoin:
            case XmlTestType.Centroid:
            case XmlTestType.ConvexHull:
            case XmlTestType.Densify:
            case XmlTestType.Difference:
            case XmlTestType.Envelope:
            case XmlTestType.InteriorPoint:
            case XmlTestType.Intersection:
            case XmlTestType.SymmetricDifference:
            case XmlTestType.Union:
            case XmlTestType.MinClearanceLine:
            {
                try
                {
                    xmlTestItem.Result = _objReader.Read(result);
                    return(true);
                }
                catch (Exception ex)
                {
                    XmlTestExceptionManager.Publish(ex);
                    return(false);
                }
            }

            // Here we expect boolean
            case XmlTestType.Contains:
            case XmlTestType.Crosses:
            case XmlTestType.Disjoint:
            case XmlTestType.Equals:
            case XmlTestType.Intersects:
            case XmlTestType.IsEmpty:
            case XmlTestType.IsSimple:
            case XmlTestType.IsValid:
            case XmlTestType.IsWithinDistance:
            case XmlTestType.Overlaps:
            case XmlTestType.Relate:
            case XmlTestType.Touches:
            case XmlTestType.Within:
            case XmlTestType.Covers:
            case XmlTestType.CoveredBy:
            case XmlTestType.EqualsExact:
            case XmlTestType.EqualsNorm:
            case XmlTestType.EqualsTopo:
            {
                try
                {
                    xmlTestItem.Result = bool.Parse(result);
                    return(true);
                }
                catch (Exception ex)
                {
                    XmlTestExceptionManager.Publish(ex);
                    return(false);
                }
            }

            default:
                string format = string.Format("Test not implemented: {0}", xmlTestItem.TestType);
                throw new NotImplementedException(format);
            }
        }