$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r69336 - trunk/libs/geometry/test/algorithms
From: barend.gehrels_at_[hidden]
Date: 2011-02-27 11:28:22
Author: barendgehrels
Date: 2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
New Revision: 69336
URL: http://svn.boost.org/trac/boost/changeset/69336
Log:
Added ttmath_big for:
  append,assign,buffer,comparable_distance,convert,correct,disjoint,distance,envelope,for_each,make,reverse,simplify,transform,unique
  plus all vcproj files
Text files modified: 
   trunk/libs/geometry/test/algorithms/append.cpp                 |     4 ++                                      
   trunk/libs/geometry/test/algorithms/append.vcproj              |     6 +-                                      
   trunk/libs/geometry/test/algorithms/area.vcproj                |     4 +-                                      
   trunk/libs/geometry/test/algorithms/assign.cpp                 |    11 ++++++                                  
   trunk/libs/geometry/test/algorithms/assign.vcproj              |    13 +++++--                                 
   trunk/libs/geometry/test/algorithms/buffer.cpp                 |     3 +                                       
   trunk/libs/geometry/test/algorithms/buffer.vcproj              |    13 +++++--                                 
   trunk/libs/geometry/test/algorithms/centroid.cpp               |     4 ++                                      
   trunk/libs/geometry/test/algorithms/centroid.vcproj            |     4 +-                                      
   trunk/libs/geometry/test/algorithms/combine.cpp                |     2 +                                       
   trunk/libs/geometry/test/algorithms/combine.vcproj             |    13 +++++--                                 
   trunk/libs/geometry/test/algorithms/comparable_distance.cpp    |    27 ++++++++------                          
   trunk/libs/geometry/test/algorithms/comparable_distance.vcproj |     4 +-                                      
   trunk/libs/geometry/test/algorithms/convert.cpp                |    31 +++++++++--------                       
   trunk/libs/geometry/test/algorithms/convert.vcproj             |    13 +++++--                                 
   trunk/libs/geometry/test/algorithms/convex_hull.vcproj         |     4 +-                                      
   trunk/libs/geometry/test/algorithms/correct.cpp                |     4 ++                                      
   trunk/libs/geometry/test/algorithms/correct.vcproj             |     4 +-                                      
   trunk/libs/geometry/test/algorithms/disjoint.cpp               |     4 ++                                      
   trunk/libs/geometry/test/algorithms/disjoint.vcproj            |     4 +-                                      
   trunk/libs/geometry/test/algorithms/distance.cpp               |     4 ++                                      
   trunk/libs/geometry/test/algorithms/distance.vcproj            |    13 +++++--                                 
   trunk/libs/geometry/test/algorithms/envelope.cpp               |     6 +++                                     
   trunk/libs/geometry/test/algorithms/envelope.vcproj            |     4 +-                                      
   trunk/libs/geometry/test/algorithms/equals.vcproj              |     4 +-                                      
   trunk/libs/geometry/test/algorithms/for_each.cpp               |     5 ++                                      
   trunk/libs/geometry/test/algorithms/for_each.vcproj            |     4 +-                                      
   trunk/libs/geometry/test/algorithms/intersection.cpp           |     2                                         
   trunk/libs/geometry/test/algorithms/intersection.vcproj        |     4 +-                                      
   trunk/libs/geometry/test/algorithms/intersects.vcproj          |     4 +-                                      
   trunk/libs/geometry/test/algorithms/length.vcproj              |     4 +-                                      
   trunk/libs/geometry/test/algorithms/make.cpp                   |    24 ++++++++-----                           
   trunk/libs/geometry/test/algorithms/make.vcproj                |    13 +++++--                                 
   trunk/libs/geometry/test/algorithms/overlaps.vcproj            |     4 +-                                      
   trunk/libs/geometry/test/algorithms/perimeter.vcproj           |     4 +-                                      
   trunk/libs/geometry/test/algorithms/reverse.cpp                |     4 ++                                      
   trunk/libs/geometry/test/algorithms/reverse.vcproj             |     6 +-                                      
   trunk/libs/geometry/test/algorithms/simplify.cpp               |     5 ++                                      
   trunk/libs/geometry/test/algorithms/simplify.vcproj            |     4 +-                                      
   trunk/libs/geometry/test/algorithms/test_area.hpp              |    10 +++--                                   
   trunk/libs/geometry/test/algorithms/test_centroid.hpp          |    10 ++--                                    
   trunk/libs/geometry/test/algorithms/test_convex_hull.hpp       |     2                                         
   trunk/libs/geometry/test/algorithms/test_difference.hpp        |    23 ++++++++++++                            
   trunk/libs/geometry/test/algorithms/test_distance.hpp          |     2                                         
   trunk/libs/geometry/test/algorithms/test_envelope.hpp          |    70 +++++++++++++++++++++++++-------------- 
   trunk/libs/geometry/test/algorithms/test_for_each.hpp          |     8 ++--                                    
   trunk/libs/geometry/test/algorithms/test_intersection.hpp      |     8 ++-                                     
   trunk/libs/geometry/test/algorithms/test_length.hpp            |     2                                         
   trunk/libs/geometry/test/algorithms/test_perimeter.hpp         |     2                                         
   trunk/libs/geometry/test/algorithms/test_union.hpp             |    16 ++++++++-                               
   trunk/libs/geometry/test/algorithms/transform.cpp              |    26 ++++++++++----                          
   trunk/libs/geometry/test/algorithms/transform.vcproj           |     4 +-                                      
   trunk/libs/geometry/test/algorithms/union.cpp                  |     5 ++                                      
   trunk/libs/geometry/test/algorithms/union.vcproj               |     5 +-                                      
   trunk/libs/geometry/test/algorithms/unique.cpp                 |     4 ++                                      
   trunk/libs/geometry/test/algorithms/unique.vcproj              |     6 +-                                      
   trunk/libs/geometry/test/algorithms/within.vcproj              |     4 +-                                      
   57 files changed, 335 insertions(+), 162 deletions(-)
Modified: trunk/libs/geometry/test/algorithms/append.cpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/append.cpp	(original)
+++ trunk/libs/geometry/test/algorithms/append.cpp	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -82,5 +82,9 @@
     test_all<bg::model::point<float, 2, bg::cs::cartesian> >();
     test_all<bg::model::point<double, 2, bg::cs::cartesian> >();
 
+#ifdef HAVE_TTMATH
+    test_all<bg::model::point<ttmath_big, 2, bg::cs::cartesian> >();
+#endif
+
     return 0;
 }
Modified: trunk/libs/geometry/test/algorithms/append.vcproj
==============================================================================
--- trunk/libs/geometry/test/algorithms/append.vcproj	(original)
+++ trunk/libs/geometry/test/algorithms/append.vcproj	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -20,7 +20,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\append"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
 			>
                         <Tool
@@ -43,8 +43,8 @@
                                 Optimization="0"
                                 AdditionalIncludeDirectories="../../../..;.."
                                 PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				RuntimeLibrary="1"
                                 ExceptionHandling="2"
+				RuntimeLibrary="1"
                                 UsePrecompiledHeader="0"
                                 DebugInformationFormat="1"
                         />
@@ -93,7 +93,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\append"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
                         WholeProgramOptimization="1"
 			>
Modified: trunk/libs/geometry/test/algorithms/area.vcproj
==============================================================================
--- trunk/libs/geometry/test/algorithms/area.vcproj	(original)
+++ trunk/libs/geometry/test/algorithms/area.vcproj	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -20,7 +20,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\area"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
 			>
                         <Tool
@@ -93,7 +93,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\area"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
                         WholeProgramOptimization="1"
 			>
Modified: trunk/libs/geometry/test/algorithms/assign.cpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/assign.cpp	(original)
+++ trunk/libs/geometry/test/algorithms/assign.cpp	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -172,6 +172,17 @@
     test_assign_linestring_2d<bg::model::point<float, 2, bg::cs::cartesian> >();
     test_assign_linestring_2d<bg::model::point<double, 2, bg::cs::cartesian> >();
 
+#ifdef HAVE_TTMATH
+    // Next 3 need extra traits for c-array with custom type:
+    // test_assign_point_2d<ttmath_big[2]>();
+    // test_assign_point_3d<ttmath_big[3]>();
+    // test_assign_box_2d<ttmath_big[2]>();
+
+    test_assign_point_2d<bg::model::point<ttmath_big, 2, bg::cs::cartesian> >();
+    test_assign_point_3d<bg::model::point<ttmath_big, 3, bg::cs::cartesian> >();
+    test_assign_box_or_segment_2d<bg::model::point<ttmath_big, 2, bg::cs::cartesian> >();
+    test_assign_linestring_2d<bg::model::point<ttmath_big, 2, bg::cs::cartesian> >();
+#endif
 
     return 0;
 }
Modified: trunk/libs/geometry/test/algorithms/assign.vcproj
==============================================================================
--- trunk/libs/geometry/test/algorithms/assign.vcproj	(original)
+++ trunk/libs/geometry/test/algorithms/assign.vcproj	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -6,7 +6,6 @@
         ProjectGUID="{94BC6547-67C1-44DB-903D-526537A91E23}"
         RootNamespace="assign"
         Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
 	>
         <Platforms>
                 <Platform
@@ -21,7 +20,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\assign"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
 			>
                         <Tool
@@ -44,8 +43,8 @@
                                 Optimization="0"
                                 AdditionalIncludeDirectories="../../../..;.."
                                 PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				RuntimeLibrary="1"
                                 ExceptionHandling="2"
+				RuntimeLibrary="1"
                                 UsePrecompiledHeader="0"
                                 DebugInformationFormat="1"
                         />
@@ -83,6 +82,9 @@
                                 Name="VCAppVerifierTool"
                         />
                         <Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
                                 Name="VCPostBuildEventTool"
                         />
                 </Configuration>
@@ -91,7 +93,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\assign"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
                         WholeProgramOptimization="1"
 			>
@@ -152,6 +154,9 @@
                                 Name="VCAppVerifierTool"
                         />
                         <Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
                                 Name="VCPostBuildEventTool"
                         />
                 </Configuration>
Modified: trunk/libs/geometry/test/algorithms/buffer.cpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/buffer.cpp	(original)
+++ trunk/libs/geometry/test/algorithms/buffer.cpp	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -42,5 +42,8 @@
     test_all<bg::model::point<float, 2, bg::cs::cartesian> >();
     test_all<bg::model::point<double, 2, bg::cs::cartesian> >();
 
+#ifdef HAVE_TTMATH
+    test_all<bg::model::point<ttmath_big, 2, bg::cs::cartesian> >();
+#endif
     return 0;
 }
Modified: trunk/libs/geometry/test/algorithms/buffer.vcproj
==============================================================================
--- trunk/libs/geometry/test/algorithms/buffer.vcproj	(original)
+++ trunk/libs/geometry/test/algorithms/buffer.vcproj	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -6,7 +6,6 @@
         ProjectGUID="{C66E1F6F-84F6-44E2-B5E8-2B127065BE31}"
         RootNamespace="buffer"
         Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
 	>
         <Platforms>
                 <Platform
@@ -21,7 +20,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\buffer"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
 			>
                         <Tool
@@ -44,8 +43,8 @@
                                 Optimization="0"
                                 AdditionalIncludeDirectories="../../../..;.."
                                 PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				RuntimeLibrary="1"
                                 ExceptionHandling="2"
+				RuntimeLibrary="1"
                                 UsePrecompiledHeader="0"
                                 DebugInformationFormat="1"
                         />
@@ -83,6 +82,9 @@
                                 Name="VCAppVerifierTool"
                         />
                         <Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
                                 Name="VCPostBuildEventTool"
                         />
                 </Configuration>
@@ -91,7 +93,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\buffer"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
                         WholeProgramOptimization="1"
 			>
@@ -152,6 +154,9 @@
                                 Name="VCAppVerifierTool"
                         />
                         <Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
                                 Name="VCPostBuildEventTool"
                         />
                 </Configuration>
Modified: trunk/libs/geometry/test/algorithms/centroid.cpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/centroid.cpp	(original)
+++ trunk/libs/geometry/test/algorithms/centroid.cpp	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -62,6 +62,10 @@
 
     test_centroid<bg::model::box<P> >("POLYGON((1 2,3 4))", 2, 3);
     test_centroid<P>("POINT(3 3)", 3, 3);
+
+    //test_centroid_exception<bg::model::linestring<P> >("LINESTRING EMPTY");
+///    test_centroid_exception<bg::model::polygon<P> >("POLYGON EMPTY");
+//    test_centroid_exception<bg::model::ring<P> >("POLYGON EMPTY");
 }
 
 
Modified: trunk/libs/geometry/test/algorithms/centroid.vcproj
==============================================================================
--- trunk/libs/geometry/test/algorithms/centroid.vcproj	(original)
+++ trunk/libs/geometry/test/algorithms/centroid.vcproj	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -20,7 +20,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\centroid"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
 			>
                         <Tool
@@ -93,7 +93,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\centroid"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
                         WholeProgramOptimization="1"
 			>
Modified: trunk/libs/geometry/test/algorithms/combine.cpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/combine.cpp	(original)
+++ trunk/libs/geometry/test/algorithms/combine.cpp	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -136,6 +136,8 @@
 
 #if defined(HAVE_TTMATH)
     test_3d<bg::model::point<ttmath_big, 3, bg::cs::cartesian> >();
+    test_spherical_degree<bg::model::point<ttmath_big, 2, bg::cs::spherical<bg::degree> > >();
+    test_spherical_radian<bg::model::point<ttmath_big, 2, bg::cs::spherical<bg::radian> > >();
 #endif
 
     return 0;
Modified: trunk/libs/geometry/test/algorithms/combine.vcproj
==============================================================================
--- trunk/libs/geometry/test/algorithms/combine.vcproj	(original)
+++ trunk/libs/geometry/test/algorithms/combine.vcproj	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -6,7 +6,6 @@
         ProjectGUID="{5330DAB1-DF27-44FC-971B-3C5094F82FA3}"
         RootNamespace="combine"
         Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
 	>
         <Platforms>
                 <Platform
@@ -21,7 +20,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\combine"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
 			>
                         <Tool
@@ -44,8 +43,8 @@
                                 Optimization="0"
                                 AdditionalIncludeDirectories="../../../..;.."
                                 PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				RuntimeLibrary="1"
                                 ExceptionHandling="2"
+				RuntimeLibrary="1"
                                 UsePrecompiledHeader="0"
                                 DebugInformationFormat="1"
                         />
@@ -83,6 +82,9 @@
                                 Name="VCAppVerifierTool"
                         />
                         <Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
                                 Name="VCPostBuildEventTool"
                         />
                 </Configuration>
@@ -91,7 +93,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\combine"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
                         WholeProgramOptimization="1"
 			>
@@ -152,6 +154,9 @@
                                 Name="VCAppVerifierTool"
                         />
                         <Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
                                 Name="VCPostBuildEventTool"
                         />
                 </Configuration>
Modified: trunk/libs/geometry/test/algorithms/comparable_distance.cpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/comparable_distance.cpp	(original)
+++ trunk/libs/geometry/test/algorithms/comparable_distance.cpp	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -37,9 +37,9 @@
     distance_type dr13 = bg::comparable_distance(p1, p3);
     distance_type dr23 = bg::comparable_distance(p2, p3);
 
-    BOOST_CHECK_CLOSE(double(dr12), 9.000, 0.001);
-    BOOST_CHECK_CLOSE(double(dr13), 16.000, 0.001);
-    BOOST_CHECK_CLOSE(double(dr23), 25.000, 0.001);
+    BOOST_CHECK_CLOSE(dr12, 9.000, 0.001);
+    BOOST_CHECK_CLOSE(dr13, 16.000, 0.001);
+    BOOST_CHECK_CLOSE(dr23, 25.000, 0.001);
 
 }
 
@@ -54,7 +54,7 @@
     bg::set<0>(p2, 2);
     bg::set<1>(p2, 2);
 
-    double d = bg::comparable_distance(p1, p2);
+    typename bg::coordinate_type<P>::type d = bg::comparable_distance(p1, p2);
     BOOST_CHECK_CLOSE(d, 2.0, 0.001);
 }
 
@@ -75,15 +75,15 @@
 
     bg::model::referring_segment<P const> const seg(s1, s2);
 
-    double d1 = bg::comparable_distance(p1, seg); BOOST_CHECK_CLOSE(d1, 8.0, 0.001);
-    double d2 = bg::comparable_distance(p2, seg); BOOST_CHECK_CLOSE(d2, 2.0, 0.001);
-    double d3 = bg::comparable_distance(p3, seg); BOOST_CHECK_CLOSE(d3, 0.02, 0.001);
-    double d4 = bg::comparable_distance(p4, seg); BOOST_CHECK_CLOSE(d4, 0.02, 0.001);
-    double d5 = bg::comparable_distance(p5, seg); BOOST_CHECK_CLOSE(d5, 0.0, 0.001);
+    coordinate_type d1 = bg::comparable_distance(p1, seg); BOOST_CHECK_CLOSE(d1, 8.0, 0.001);
+    coordinate_type d2 = bg::comparable_distance(p2, seg); BOOST_CHECK_CLOSE(d2, 2.0, 0.001);
+    coordinate_type d3 = bg::comparable_distance(p3, seg); BOOST_CHECK_CLOSE(d3, 0.02, 0.001);
+    coordinate_type d4 = bg::comparable_distance(p4, seg); BOOST_CHECK_CLOSE(d4, 0.02, 0.001);
+    coordinate_type d5 = bg::comparable_distance(p5, seg); BOOST_CHECK_CLOSE(d5, 0.0, 0.001);
 
     // Reverse case
-    double dr1 = bg::comparable_distance(seg, p1); BOOST_CHECK_CLOSE(dr1, d1, 0.001);
-    double dr2 = bg::comparable_distance(seg, p2); BOOST_CHECK_CLOSE(dr2, d2, 0.001);
+    coordinate_type dr1 = bg::comparable_distance(seg, p1); BOOST_CHECK_CLOSE(dr1, d1, 0.001);
+    coordinate_type dr2 = bg::comparable_distance(seg, p2); BOOST_CHECK_CLOSE(dr2, d2, 0.001);
 }
 
 template <typename P>
@@ -95,7 +95,7 @@
 
     P p = bg::make<P>(2, 1);
 
-    double d = bg::comparable_distance(p, points);
+    typename bg::coordinate_type<P>::type d = bg::comparable_distance(p, points);
     BOOST_CHECK_CLOSE(d, 0.70710678, 0.001);
 
     p = bg::make<P>(5, 5);
@@ -133,5 +133,8 @@
     test_all<bg::model::d2::point_xy<float> >();
     test_all<bg::model::d2::point_xy<double> >();
 
+#ifdef HAVE_TTMATH
+    test_all<bg::model::d2::point_xy<ttmath_big> >();
+#endif
     return 0;
 }
Modified: trunk/libs/geometry/test/algorithms/comparable_distance.vcproj
==============================================================================
--- trunk/libs/geometry/test/algorithms/comparable_distance.vcproj	(original)
+++ trunk/libs/geometry/test/algorithms/comparable_distance.vcproj	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -20,7 +20,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\comparable_distance"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
 			>
                         <Tool
@@ -93,7 +93,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\comparable_distance"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
                         WholeProgramOptimization="1"
 			>
Modified: trunk/libs/geometry/test/algorithms/convert.cpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/convert.cpp	(original)
+++ trunk/libs/geometry/test/algorithms/convert.cpp	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -31,10 +31,10 @@
     box_type b;
     bg::convert(p, b);
 
-    BOOST_CHECK_CLOSE(double(bg::get<0, 0>(b)), 1.0, 0.001);
-    BOOST_CHECK_CLOSE(double(bg::get<0, 1>(b)), 2.0, 0.001);
-    BOOST_CHECK_CLOSE(double(bg::get<1, 0>(b)), 1.0, 0.001);
-    BOOST_CHECK_CLOSE(double(bg::get<1, 1>(b)), 2.0, 0.001);
+    BOOST_CHECK_CLOSE((bg::get<0, 0>(b)), 1.0, 0.001);
+    BOOST_CHECK_CLOSE((bg::get<0, 1>(b)), 2.0, 0.001);
+    BOOST_CHECK_CLOSE((bg::get<1, 0>(b)), 1.0, 0.001);
+    BOOST_CHECK_CLOSE((bg::get<1, 1>(b)), 2.0, 0.001);
 }
 
 template <typename P>
@@ -59,20 +59,20 @@
     //std::cout << bg::wkt(ring) << std::endl;
 
     typename boost::range_const_iterator<ring_type>::type it = ring.begin();
-    BOOST_CHECK_CLOSE(double(bg::get<0>(*it)), 1.0, 0.001);
-    BOOST_CHECK_CLOSE(double(bg::get<1>(*it)), 2.0, 0.001);
+    BOOST_CHECK_CLOSE(bg::get<0>(*it), 1.0, 0.001);
+    BOOST_CHECK_CLOSE(bg::get<1>(*it), 2.0, 0.001);
     it++;
-    BOOST_CHECK_CLOSE(double(bg::get<0>(*it)), 1.0, 0.001);
-    BOOST_CHECK_CLOSE(double(bg::get<1>(*it)), 4.0, 0.001);
+    BOOST_CHECK_CLOSE(bg::get<0>(*it), 1.0, 0.001);
+    BOOST_CHECK_CLOSE(bg::get<1>(*it), 4.0, 0.001);
     it++;
-    BOOST_CHECK_CLOSE(double(bg::get<0>(*it)), 3.0, 0.001);
-    BOOST_CHECK_CLOSE(double(bg::get<1>(*it)), 4.0, 0.001);
+    BOOST_CHECK_CLOSE(bg::get<0>(*it), 3.0, 0.001);
+    BOOST_CHECK_CLOSE(bg::get<1>(*it), 4.0, 0.001);
     it++;
-    BOOST_CHECK_CLOSE(double(bg::get<0>(*it)), 3.0, 0.001);
-    BOOST_CHECK_CLOSE(double(bg::get<1>(*it)), 2.0, 0.001);
+    BOOST_CHECK_CLOSE(bg::get<0>(*it), 3.0, 0.001);
+    BOOST_CHECK_CLOSE(bg::get<1>(*it), 2.0, 0.001);
     it++;
-    BOOST_CHECK_CLOSE(double(bg::get<0>(*it)), 1.0, 0.001);
-    BOOST_CHECK_CLOSE(double(bg::get<1>(*it)), 2.0, 0.001);
+    BOOST_CHECK_CLOSE(bg::get<0>(*it), 1.0, 0.001);
+    BOOST_CHECK_CLOSE(bg::get<1>(*it), 2.0, 0.001);
 
     BOOST_CHECK_EQUAL(ring.size(), 5u);
 
@@ -92,5 +92,8 @@
     test_std<bg::model::point<float, 2, bg::cs::cartesian> >();
     test_std<bg::model::point<double, 2, bg::cs::cartesian> >();
 
+#ifdef HAVE_TTMATH
+    test_std<bg::model::point<ttmath_big, 2, bg::cs::cartesian> >();
+#endif
     return 0;
 }
Modified: trunk/libs/geometry/test/algorithms/convert.vcproj
==============================================================================
--- trunk/libs/geometry/test/algorithms/convert.vcproj	(original)
+++ trunk/libs/geometry/test/algorithms/convert.vcproj	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -6,7 +6,6 @@
         ProjectGUID="{FABF1AA7-F695-49F8-92F6-AB6C4B0C088A}"
         RootNamespace="convert"
         Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
 	>
         <Platforms>
                 <Platform
@@ -21,7 +20,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\convert"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
 			>
                         <Tool
@@ -44,8 +43,8 @@
                                 Optimization="0"
                                 AdditionalIncludeDirectories="../../../..;.."
                                 PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				RuntimeLibrary="1"
                                 ExceptionHandling="2"
+				RuntimeLibrary="1"
                                 UsePrecompiledHeader="0"
                                 DebugInformationFormat="1"
                         />
@@ -83,6 +82,9 @@
                                 Name="VCAppVerifierTool"
                         />
                         <Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
                                 Name="VCPostBuildEventTool"
                         />
                 </Configuration>
@@ -91,7 +93,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\convert"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
                         WholeProgramOptimization="1"
 			>
@@ -152,6 +154,9 @@
                                 Name="VCAppVerifierTool"
                         />
                         <Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
                                 Name="VCPostBuildEventTool"
                         />
                 </Configuration>
Modified: trunk/libs/geometry/test/algorithms/convex_hull.vcproj
==============================================================================
--- trunk/libs/geometry/test/algorithms/convex_hull.vcproj	(original)
+++ trunk/libs/geometry/test/algorithms/convex_hull.vcproj	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -20,7 +20,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\convex_hull"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
 			>
                         <Tool
@@ -93,7 +93,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\convex_hull"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
                         WholeProgramOptimization="1"
 			>
Modified: trunk/libs/geometry/test/algorithms/correct.cpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/correct.cpp	(original)
+++ trunk/libs/geometry/test/algorithms/correct.cpp	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -168,5 +168,9 @@
     test_all<bg::model::d2::point_xy<float> >();
     test_all<bg::model::d2::point_xy<double> >();
 
+#if defined(HAVE_TTMATH)
+    test_all<bg::model::d2::point_xy<ttmath_big> >();
+#endif
+
     return 0;
 }
Modified: trunk/libs/geometry/test/algorithms/correct.vcproj
==============================================================================
--- trunk/libs/geometry/test/algorithms/correct.vcproj	(original)
+++ trunk/libs/geometry/test/algorithms/correct.vcproj	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -20,7 +20,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\correct"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
 			>
                         <Tool
@@ -93,7 +93,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\correct"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
                         WholeProgramOptimization="1"
 			>
Modified: trunk/libs/geometry/test/algorithms/disjoint.cpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/disjoint.cpp	(original)
+++ trunk/libs/geometry/test/algorithms/disjoint.cpp	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -117,5 +117,9 @@
     test_all<bg::model::d2::point_xy<float> >();
     test_all<bg::model::d2::point_xy<double> >();
 
+#ifdef HAVE_TTMATH
+    test_all<bg::model::d2::point_xy<ttmath_big> >();
+#endif
+
     return 0;
 }
Modified: trunk/libs/geometry/test/algorithms/disjoint.vcproj
==============================================================================
--- trunk/libs/geometry/test/algorithms/disjoint.vcproj	(original)
+++ trunk/libs/geometry/test/algorithms/disjoint.vcproj	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -20,7 +20,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
 			>
                         <Tool
@@ -93,7 +93,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
                         WholeProgramOptimization="1"
 			>
Modified: trunk/libs/geometry/test/algorithms/distance.cpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/distance.cpp	(original)
+++ trunk/libs/geometry/test/algorithms/distance.cpp	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -222,5 +222,9 @@
     test_all<bg::model::d2::point_xy<float> >();
     test_all<bg::model::d2::point_xy<double> >();
 
+#ifdef HAVE_TTMATH
+    test_all<bg::model::d2::point_xy<ttmath_big> >();
+#endif
+
     return 0;
 }
Modified: trunk/libs/geometry/test/algorithms/distance.vcproj
==============================================================================
--- trunk/libs/geometry/test/algorithms/distance.vcproj	(original)
+++ trunk/libs/geometry/test/algorithms/distance.vcproj	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -6,7 +6,6 @@
         ProjectGUID="{347D08A4-22E9-45B1-A55B-AE84AA2EAA53}"
         RootNamespace="distance"
         Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
 	>
         <Platforms>
                 <Platform
@@ -21,7 +20,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\distance"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
 			>
                         <Tool
@@ -44,8 +43,8 @@
                                 Optimization="0"
                                 AdditionalIncludeDirectories="../../../..;.."
                                 PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				RuntimeLibrary="1"
                                 ExceptionHandling="2"
+				RuntimeLibrary="1"
                                 UsePrecompiledHeader="0"
                                 DebugInformationFormat="1"
                         />
@@ -83,6 +82,9 @@
                                 Name="VCAppVerifierTool"
                         />
                         <Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
                                 Name="VCPostBuildEventTool"
                         />
                 </Configuration>
@@ -91,7 +93,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\distance"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
                         WholeProgramOptimization="1"
 			>
@@ -152,6 +154,9 @@
                                 Name="VCAppVerifierTool"
                         />
                         <Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
                                 Name="VCPostBuildEventTool"
                         />
                 </Configuration>
Modified: trunk/libs/geometry/test/algorithms/envelope.cpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/envelope.cpp	(original)
+++ trunk/libs/geometry/test/algorithms/envelope.cpp	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -59,6 +59,12 @@
     test_2d<bg::model::d2::point_xy<double> >();
 
     test_3d<test::test_point>();
+    test_3d<boost::tuple<int, int, int> >();
+
+#ifdef HAVE_TTMATH
+    test_2d<bg::model::d2::point_xy<ttmath_big> >();
+    test_3d<boost::tuple<ttmath_big, ttmath_big, ttmath_big> >();
+#endif
 
     return 0;
 }
Modified: trunk/libs/geometry/test/algorithms/envelope.vcproj
==============================================================================
--- trunk/libs/geometry/test/algorithms/envelope.vcproj	(original)
+++ trunk/libs/geometry/test/algorithms/envelope.vcproj	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -20,7 +20,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\envelope"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
 			>
                         <Tool
@@ -93,7 +93,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\envelope"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
                         WholeProgramOptimization="1"
 			>
Modified: trunk/libs/geometry/test/algorithms/equals.vcproj
==============================================================================
--- trunk/libs/geometry/test/algorithms/equals.vcproj	(original)
+++ trunk/libs/geometry/test/algorithms/equals.vcproj	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -20,7 +20,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\equals"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
 			>
                         <Tool
@@ -93,7 +93,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\equals"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
                         WholeProgramOptimization="1"
 			>
Modified: trunk/libs/geometry/test/algorithms/for_each.cpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/for_each.cpp	(original)
+++ trunk/libs/geometry/test/algorithms/for_each.cpp	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -70,5 +70,10 @@
 int test_main(int, char* [])
 {
     test_all<bg::model::point<double, 2, bg::cs::cartesian> >();
+
+#if defined(HAVE_TTMATH)
+    test_all<bg::model::point<ttmath_big, 2, bg::cs::cartesian> >();
+#endif
+
     return 0;
 }
Modified: trunk/libs/geometry/test/algorithms/for_each.vcproj
==============================================================================
--- trunk/libs/geometry/test/algorithms/for_each.vcproj	(original)
+++ trunk/libs/geometry/test/algorithms/for_each.vcproj	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -20,7 +20,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\for_each"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
 			>
                         <Tool
@@ -93,7 +93,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\for_each"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
                         WholeProgramOptimization="1"
 			>
Modified: trunk/libs/geometry/test/algorithms/intersection.cpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/intersection.cpp	(original)
+++ trunk/libs/geometry/test/algorithms/intersection.cpp	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -197,7 +197,7 @@
 
     Box box_out;
     bool detected = bg::intersection(box1, box2, box_out);
-    double area = bg::area(box_out);
+    typename bg::area_result<Box>::type area = bg::area(box_out);
 
     BOOST_CHECK_EQUAL(detected, expected_result);
     if (detected && expected_result)
Modified: trunk/libs/geometry/test/algorithms/intersection.vcproj
==============================================================================
--- trunk/libs/geometry/test/algorithms/intersection.vcproj	(original)
+++ trunk/libs/geometry/test/algorithms/intersection.vcproj	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -20,7 +20,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\intersection"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
 			>
                         <Tool
@@ -93,7 +93,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\intersection"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
                         WholeProgramOptimization="1"
 			>
Modified: trunk/libs/geometry/test/algorithms/intersects.vcproj
==============================================================================
--- trunk/libs/geometry/test/algorithms/intersects.vcproj	(original)
+++ trunk/libs/geometry/test/algorithms/intersects.vcproj	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -20,7 +20,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\intersects"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
 			>
                         <Tool
@@ -93,7 +93,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\intersects"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
                         WholeProgramOptimization="1"
 			>
Modified: trunk/libs/geometry/test/algorithms/length.vcproj
==============================================================================
--- trunk/libs/geometry/test/algorithms/length.vcproj	(original)
+++ trunk/libs/geometry/test/algorithms/length.vcproj	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -20,7 +20,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\length"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
 			>
                         <Tool
@@ -93,7 +93,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\length"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
                         WholeProgramOptimization="1"
 			>
Modified: trunk/libs/geometry/test/algorithms/make.cpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/make.cpp	(original)
+++ trunk/libs/geometry/test/algorithms/make.cpp	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -23,17 +23,17 @@
 void test_point_2d()
 {
     P p = bg::make<P>((T) 123, (T) 456);
-    BOOST_CHECK_CLOSE( ((double) bg::get<0>(p)), (double) 123, 1.0e-6);
-    BOOST_CHECK_CLOSE( ((double) bg::get<1>(p)), (double) 456, 1.0e-6);
+    BOOST_CHECK_CLOSE(bg::get<0>(p), 123.0, 1.0e-6);
+    BOOST_CHECK_CLOSE(bg::get<1>(p), 456.0, 1.0e-6);
 }
 
 template <typename T, typename P>
 void test_point_3d()
 {
     P p = bg::make<P>((T) 123, (T) 456, (T) 789);
-    BOOST_CHECK_CLOSE( ((double) bg::get<0>(p)), (double) 123, 1.0e-6);
-    BOOST_CHECK_CLOSE( ((double) bg::get<1>(p)), (double) 456, 1.0e-6);
-    BOOST_CHECK_CLOSE( ((double) bg::get<2>(p)), (double) 789, 1.0e-6);
+    BOOST_CHECK_CLOSE( bg::get<0>(p), 123.0, 1.0e-6);
+    BOOST_CHECK_CLOSE( bg::get<1>(p), 456.0, 1.0e-6);
+    BOOST_CHECK_CLOSE( bg::get<2>(p), 789.0, 1.0e-6);
 }
 
 template <typename T, typename P>
@@ -41,10 +41,10 @@
 {
     typedef bg::model::box<P> B;
     B b = bg::make<B>((T) 123, (T) 456, (T) 789, (T) 1011);
-    BOOST_CHECK_CLOSE( ((double) bg::get<bg::min_corner, 0>(b)), (double) 123, 1.0e-6);
-    BOOST_CHECK_CLOSE( ((double) bg::get<bg::min_corner, 1>(b)), (double) 456, 1.0e-6);
-    BOOST_CHECK_CLOSE( ((double) bg::get<bg::max_corner, 0>(b)), (double) 789, 1.0e-6);
-    BOOST_CHECK_CLOSE( ((double) bg::get<bg::max_corner, 1>(b)), (double) 1011, 1.0e-6);
+    BOOST_CHECK_CLOSE( (bg::get<bg::min_corner, 0>(b)), 123.0, 1.0e-6);
+    BOOST_CHECK_CLOSE( (bg::get<bg::min_corner, 1>(b)), 456.0, 1.0e-6);
+    BOOST_CHECK_CLOSE( (bg::get<bg::max_corner, 0>(b)), 789.0, 1.0e-6);
+    BOOST_CHECK_CLOSE( (bg::get<bg::max_corner, 1>(b)), 1011.0, 1.0e-6);
 
     b = bg::make_inverse<B>();
 }
@@ -118,5 +118,11 @@
 
     test_3d<bg::model::point<double, 3, bg::cs::cartesian> >();
 
+#if defined(HAVE_TTMATH)
+    test_2d<bg::model::point<ttmath_big, 2, bg::cs::cartesian> >();
+    test_3d<bg::model::point<ttmath_big, 3, bg::cs::cartesian> >();
+#endif
+
+
     return 0;
 }
Modified: trunk/libs/geometry/test/algorithms/make.vcproj
==============================================================================
--- trunk/libs/geometry/test/algorithms/make.vcproj	(original)
+++ trunk/libs/geometry/test/algorithms/make.vcproj	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -6,7 +6,6 @@
         ProjectGUID="{BCD17F3E-8DF2-4B00-A75E-BF7372D2873B}"
         RootNamespace="make"
         Keyword="Win32Proj"
-	TargetFrameworkVersion="131072"
 	>
         <Platforms>
                 <Platform
@@ -21,7 +20,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\make"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
 			>
                         <Tool
@@ -44,8 +43,8 @@
                                 Optimization="0"
                                 AdditionalIncludeDirectories="../../../..;.."
                                 PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
-				RuntimeLibrary="1"
                                 ExceptionHandling="2"
+				RuntimeLibrary="1"
                                 UsePrecompiledHeader="0"
                                 DebugInformationFormat="1"
                         />
@@ -83,6 +82,9 @@
                                 Name="VCAppVerifierTool"
                         />
                         <Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
                                 Name="VCPostBuildEventTool"
                         />
                 </Configuration>
@@ -91,7 +93,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\make"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
                         WholeProgramOptimization="1"
 			>
@@ -152,6 +154,9 @@
                                 Name="VCAppVerifierTool"
                         />
                         <Tool
+				Name="VCWebDeploymentTool"
+			/>
+			<Tool
                                 Name="VCPostBuildEventTool"
                         />
                 </Configuration>
Modified: trunk/libs/geometry/test/algorithms/overlaps.vcproj
==============================================================================
--- trunk/libs/geometry/test/algorithms/overlaps.vcproj	(original)
+++ trunk/libs/geometry/test/algorithms/overlaps.vcproj	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -20,7 +20,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\overlaps"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
 			>
                         <Tool
@@ -93,7 +93,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\overlaps"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
                         WholeProgramOptimization="1"
 			>
Modified: trunk/libs/geometry/test/algorithms/perimeter.vcproj
==============================================================================
--- trunk/libs/geometry/test/algorithms/perimeter.vcproj	(original)
+++ trunk/libs/geometry/test/algorithms/perimeter.vcproj	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -20,7 +20,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\perimeter"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
 			>
                         <Tool
@@ -93,7 +93,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\perimeter"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
                         WholeProgramOptimization="1"
 			>
Modified: trunk/libs/geometry/test/algorithms/reverse.cpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/reverse.cpp	(original)
+++ trunk/libs/geometry/test/algorithms/reverse.cpp	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -64,5 +64,9 @@
     test_all<bg::model::d2::point_xy<int> >();
     test_all<bg::model::d2::point_xy<double> >();
 
+#if defined(HAVE_TTMATH)
+    test_all<bg::model::d2::point_xy<ttmath_big> >();
+#endif
+
     return 0;
 }
Modified: trunk/libs/geometry/test/algorithms/reverse.vcproj
==============================================================================
--- trunk/libs/geometry/test/algorithms/reverse.vcproj	(original)
+++ trunk/libs/geometry/test/algorithms/reverse.vcproj	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="Windows-1252"?>
 <VisualStudioProject
         ProjectType="Visual C++"
-	Version="8,00"
+	Version="8.00"
         Name="reverse"
         ProjectGUID="{14B5DFC5-D511-4D8C-A231-EE90A05687E1}"
         RootNamespace="reverse"
@@ -20,7 +20,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\reverse"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
 			>
                         <Tool
@@ -93,7 +93,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\reverse"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
                         WholeProgramOptimization="1"
 			>
Modified: trunk/libs/geometry/test/algorithms/simplify.cpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/simplify.cpp	(original)
+++ trunk/libs/geometry/test/algorithms/simplify.cpp	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -92,5 +92,10 @@
 
     test_spherical<bg::model::point<double, 2, bg::cs::spherical<bg::degree> > >();
 
+#if defined(HAVE_TTMATH)
+    test_all<bg::model::d2::point_xy<ttmath_big> >();
+    test_spherical<bg::model::point<ttmath_big, 2, bg::cs::spherical<bg::degree> > >();
+#endif
+
     return 0;
 }
Modified: trunk/libs/geometry/test/algorithms/simplify.vcproj
==============================================================================
--- trunk/libs/geometry/test/algorithms/simplify.vcproj	(original)
+++ trunk/libs/geometry/test/algorithms/simplify.vcproj	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -20,7 +20,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\simplify"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
 			>
                         <Tool
@@ -93,7 +93,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\simplify"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
                         WholeProgramOptimization="1"
 			>
Modified: trunk/libs/geometry/test/algorithms/test_area.hpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/test_area.hpp	(original)
+++ trunk/libs/geometry/test/algorithms/test_area.hpp	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -18,9 +18,10 @@
 
 
 template <typename Geometry>
-void test_area(Geometry const& geometry, long double expected_area)
+void test_area(Geometry const& geometry, 
+            typename bg::area_result<Geometry>::type expected_area)
 {
-    long double area = bg::area(geometry);
+    typename bg::area_result<Geometry>::type area = bg::area(geometry);
 
 #ifdef GEOMETRY_TEST_DEBUG
     std::ostringstream out;
@@ -46,7 +47,7 @@
     bg::strategy::area::surveyor
         <
             typename bg::point_type<Geometry>::type,
-            long double
+            typename bg::coordinate_type<Geometry>::type
         > strategy2;
 
     area = bg::area(geometry, strategy2);
@@ -54,7 +55,8 @@
 }
 
 template <typename Geometry>
-void test_geometry(std::string const& wkt, double expected_area)
+void test_geometry(std::string const& wkt, 
+            typename bg::area_result<Geometry>::type expected_area)
 {
     Geometry geometry;
     bg::read_wkt(wkt, geometry);
Modified: trunk/libs/geometry/test/algorithms/test_centroid.hpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/test_centroid.hpp	(original)
+++ trunk/libs/geometry/test/algorithms/test_centroid.hpp	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -30,8 +30,8 @@
     template <typename Point, typename T>
     static void apply(Point const& p, T const& x, T const& y, T const&)
     {
-        BOOST_CHECK_CLOSE(double(bg::get<0>(p)), double(x), 0.001);
-        BOOST_CHECK_CLOSE(double(bg::get<1>(p)), double(y), 0.001);
+        BOOST_CHECK_CLOSE(bg::get<0>(p), x, 0.001);
+        BOOST_CHECK_CLOSE(bg::get<1>(p), y, 0.001);
     }
 };
 
@@ -42,9 +42,9 @@
     template <typename Point, typename T>
     static void apply(Point const& p, T const& x, T const& y, T const& z)
     {
-        BOOST_CHECK_CLOSE(double(bg::get<0>(p)), double(x), 0.001);
-        BOOST_CHECK_CLOSE(double(bg::get<1>(p)), double(y), 0.001);
-        BOOST_CHECK_CLOSE(double(bg::get<2>(p)), double(z), 0.001);
+        BOOST_CHECK_CLOSE(bg::get<0>(p), x, 0.001);
+        BOOST_CHECK_CLOSE(bg::get<1>(p), y, 0.001);
+        BOOST_CHECK_CLOSE(bg::get<2>(p), z, 0.001);
     }
 };
 
Modified: trunk/libs/geometry/test/algorithms/test_convex_hull.hpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/test_convex_hull.hpp	(original)
+++ trunk/libs/geometry/test/algorithms/test_convex_hull.hpp	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -41,7 +41,7 @@
 
     BOOST_CHECK(bg::num_points(geometry) == size_original);
 
-    double ah = bg::area(hull);
+    typename bg::area_result<Geometry>::type ah = bg::area(hull);
     if (reverse)
     {
         ah = -ah;
Modified: trunk/libs/geometry/test/algorithms/test_difference.hpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/test_difference.hpp	(original)
+++ trunk/libs/geometry/test/algorithms/test_difference.hpp	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -14,6 +14,8 @@
 #include <boost/foreach.hpp>
 #include <geometry_test_common.hpp>
 
+#include <boost/range/algorithm/copy.hpp>
+
 #include <boost/geometry/algorithms/difference.hpp>
 #include <boost/geometry/algorithms/sym_difference.hpp>
 #include <boost/geometry/multi/algorithms/difference.hpp>
@@ -62,7 +64,7 @@
         bg::difference(g1, g2, clip);
     }
 
-    double area = 0;
+    typename bg::area_result<G1>::type area = 0;
     std::size_t n = 0;
     for (typename std::vector<OutputType>::iterator it = clip.begin();
             it != clip.end();
@@ -79,6 +81,25 @@
         area += bg::area(*it);
     }
 
+    {
+        // Test inserter functionality
+        // Test if inserter returns output-iterator (using Boost.Range copy)
+        std::vector<OutputType> inserted, array_with_one_empty_geometry;
+        array_with_one_empty_geometry.push_back(OutputType());
+        if (sym)
+        {
+            boost::copy(array_with_one_empty_geometry, bg::sym_difference_inserter<OutputType>(g1, g2, std::back_inserter(inserted)));
+        }
+        else
+        {
+            boost::copy(array_with_one_empty_geometry, bg::difference_inserter<OutputType>(g1, g2, std::back_inserter(inserted)));
+        }
+        
+        BOOST_CHECK_EQUAL(boost::size(clip), boost::size(inserted) - 1);
+    }
+
+
+
 
 #if ! defined(BOOST_GEOMETRY_NO_BOOST_TEST)
     /*if (expected_point_count > 0)
Modified: trunk/libs/geometry/test/algorithms/test_distance.hpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/test_distance.hpp	(original)
+++ trunk/libs/geometry/test/algorithms/test_distance.hpp	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -111,7 +111,7 @@
             Geometry2 const& geometry2,
             long double expected_distance)
 {
-    long double distance = bg::distance(geometry1, geometry2);
+    typename bg::distance_result<Geometry1>::type distance = bg::distance(geometry1, geometry2);
 
 #ifdef GEOMETRY_TEST_DEBUG
     std::ostringstream out;
Modified: trunk/libs/geometry/test/algorithms/test_envelope.hpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/test_envelope.hpp	(original)
+++ trunk/libs/geometry/test/algorithms/test_envelope.hpp	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -18,39 +18,53 @@
 #include <boost/geometry/extensions/gis/io/wkt/read_wkt.hpp>
 
 
-template<std::size_t DimensionCount>
+template<typename Box, std::size_t DimensionCount>
 struct check_result
 {};
 
-template <>
-struct check_result<2>
+template <typename Box>
+struct check_result<Box, 2>
 {
-    template <typename Box, typename T>
-    static void apply(Box const& b, const T& x1, const T& y1, const T& z1,
-                const T& x2, const T& y2, const T& z2)
+    typedef typename bg::coordinate_type<Box>::type ctype;
+    typedef typename boost::mpl::if_
+            <
+                boost::is_arithmetic<ctype>,
+                double,
+                ctype
+            >::type type;
+
+    static void apply(Box const& b, const type& x1, const type& y1, const type& z1,
+                const type& x2, const type& y2, const type& z2)
     {
-        BOOST_CHECK_CLOSE(double(bg::get<bg::min_corner, 0>(b)), double(x1), 0.001);
-        BOOST_CHECK_CLOSE(double(bg::get<bg::min_corner, 1>(b)), double(y1), 0.001);
+        BOOST_CHECK_CLOSE((bg::get<bg::min_corner, 0>(b)), x1, 0.001);
+        BOOST_CHECK_CLOSE((bg::get<bg::min_corner, 1>(b)), y1, 0.001);
 
-        BOOST_CHECK_CLOSE(double(bg::get<bg::max_corner, 0>(b)), double(x2), 0.001);
-        BOOST_CHECK_CLOSE(double(bg::get<bg::max_corner, 1>(b)), double(y2), 0.001);
+        BOOST_CHECK_CLOSE((bg::get<bg::max_corner, 0>(b)), x2, 0.001);
+        BOOST_CHECK_CLOSE((bg::get<bg::max_corner, 1>(b)), y2, 0.001);
     }
 };
 
-template <>
-struct check_result<3>
+template <typename Box>
+struct check_result<Box, 3>
 {
-    template <typename Box, typename T>
-    static void apply(Box const& b, const T& x1, const T& y1, const T& z1,
-                const T& x2, const T& y2, const T& z2)
+    typedef typename bg::coordinate_type<Box>::type ctype;
+    typedef typename boost::mpl::if_
+            <
+                boost::is_arithmetic<ctype>,
+                double,
+                ctype
+            >::type type;
+
+    static void apply(Box const& b, const type& x1, const type& y1, const type& z1,
+                const type& x2, const type& y2, const type& z2)
     {
-        BOOST_CHECK_CLOSE(double(bg::get<bg::min_corner, 0>(b)), double(x1), 0.001);
-        BOOST_CHECK_CLOSE(double(bg::get<bg::min_corner, 1>(b)), double(y1), 0.001);
-        BOOST_CHECK_CLOSE(double(bg::get<bg::min_corner, 2>(b)), double(z1), 0.001);
-
-        BOOST_CHECK_CLOSE(double(bg::get<bg::max_corner, 0>(b)), double(x2), 0.001);
-        BOOST_CHECK_CLOSE(double(bg::get<bg::max_corner, 1>(b)), double(y2), 0.001);
-        BOOST_CHECK_CLOSE(double(bg::get<bg::max_corner, 2>(b)), double(z2), 0.001);
+        BOOST_CHECK_CLOSE((bg::get<bg::min_corner, 0>(b)), x1, 0.001);
+        BOOST_CHECK_CLOSE((bg::get<bg::min_corner, 1>(b)), y1, 0.001);
+        BOOST_CHECK_CLOSE((bg::get<bg::min_corner, 2>(b)), z1, 0.001);
+
+        BOOST_CHECK_CLOSE((bg::get<bg::max_corner, 0>(b)), x2, 0.001);
+        BOOST_CHECK_CLOSE((bg::get<bg::max_corner, 1>(b)), y2, 0.001);
+        BOOST_CHECK_CLOSE((bg::get<bg::max_corner, 2>(b)), z2, 0.001);
     }
 };
 
@@ -61,12 +75,14 @@
                    const T& y1, const T& y2,
                    const T& z1 = 0, const T& z2 = 0)
 {
+    typedef bg::model::box<typename bg::point_type<Geometry>::type > box_type;
+
     Geometry geometry;
     bg::read_wkt(wkt, geometry);
-    bg::model::box<typename bg::point_type<Geometry>::type > b;
+    box_type b;
     bg::envelope(geometry, b);
 
-    check_result<bg::dimension<Geometry>::type::value>::apply(b, x1, y1, z1, x2, y2, z2);
+    check_result<box_type, bg::dimension<Geometry>::type::value>::apply(b, x1, y1, z1, x2, y2, z2);
 }
 
 template <typename Geometry, typename T>
@@ -75,12 +91,14 @@
                    const T& y1, const T& y2,
                    const T& z1 = 0, const T& z2 = 0)
 {
+    typedef bg::model::box<typename bg::point_type<Geometry>::type > box_type;
+
     Geometry geometry;
     bg::read_wkt(wkt, geometry);
-    bg::model::box<typename bg::point_type<Geometry>::type > b;
+    box_type b;
     bg::envelope(geometry, b);
 
-    check_result<bg::dimension<Geometry>::type::value>::apply(b, x1, y1, z1, x2, y2, z2);
+    check_result<box_type, bg::dimension<Geometry>::type::value>::apply(b, x1, y1, z1, x2, y2, z2);
 }
 
 
Modified: trunk/libs/geometry/test/algorithms/test_for_each.hpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/test_for_each.hpp	(original)
+++ trunk/libs/geometry/test/algorithms/test_for_each.hpp	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -36,7 +36,7 @@
 template<typename Point>
 struct sum_x_functor
 {
-    int sum;
+    typename bg::coordinate_type<Point>::type sum;
 
     sum_x_functor()
         : sum(0)
@@ -44,7 +44,7 @@
 
     inline void operator()(Point const& p)
     {
-        sum += int(bg::get<0>(p));
+        sum += bg::get<0>(p);
     }
 };
 
@@ -60,7 +60,7 @@
 template<typename Segment>
 struct sum_segment_length
 {
-    double sum;
+    typename bg::coordinate_type<Segment>::type sum;
 
     sum_segment_length()
         : sum(0)
@@ -156,7 +156,7 @@
     sum_segment_length<bg::model::referring_segment<point_type const> > functor;
     functor = bg::for_each_segment(geometry, functor);
 
-    BOOST_CHECK_EQUAL(functor.sum, expected_length);
+    BOOST_CHECK_CLOSE(functor.sum, expected_length, 0.0001);
 }
 
 
Modified: trunk/libs/geometry/test/algorithms/test_intersection.hpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/test_intersection.hpp	(original)
+++ trunk/libs/geometry/test/algorithms/test_intersection.hpp	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -36,7 +36,8 @@
 
 
 template <typename OutputType, typename CalculationType, typename G1, typename G2>
-double test_intersection(std::string const& caseid, G1 const& g1, G2 const& g2,
+typename bg::area_result<G1>::type test_intersection(std::string const& caseid, 
+        G1 const& g1, G2 const& g2,
         std::size_t expected_count = 0, std::size_t expected_point_count = 0,
         double expected_length_or_area = 0,
         double percentage = 0.0001,
@@ -68,7 +69,7 @@
     bg::intersection_inserter<OutputType>(g1, g2, std::back_inserter(clip), strategy());
 
 
-    double length_or_area = 0;
+    typename bg::area_result<G1>::type length_or_area = 0;
     std::size_t n = 0;
     for (typename std::vector<OutputType>::iterator it = clip.begin();
             it != clip.end();
@@ -173,7 +174,8 @@
 }
 
 template <typename OutputType, typename G1, typename G2>
-double test_one(std::string const& caseid, std::string const& wkt1, std::string const& wkt2,
+typename bg::area_result<G1>::type test_one(std::string const& caseid, 
+        std::string const& wkt1, std::string const& wkt2,
         std::size_t expected_count = 0, std::size_t expected_point_count = 0,
         double expected_length_or_area = 0,
         double percentage = 0.0001,
Modified: trunk/libs/geometry/test/algorithms/test_length.hpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/test_length.hpp	(original)
+++ trunk/libs/geometry/test/algorithms/test_length.hpp	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -18,7 +18,7 @@
 template <typename Geometry>
 void test_length(Geometry const& geometry, long double expected_length)
 {
-    long double length = bg::length(geometry);
+    typename bg::length_result<Geometry>::type length = bg::length(geometry);
 
 #ifdef GEOMETRY_TEST_DEBUG
     std::ostringstream out;
Modified: trunk/libs/geometry/test/algorithms/test_perimeter.hpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/test_perimeter.hpp	(original)
+++ trunk/libs/geometry/test/algorithms/test_perimeter.hpp	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -21,7 +21,7 @@
 template <typename Geometry>
 void test_perimeter(Geometry const& geometry, long double expected_perimeter)
 {
-    long double perimeter = bg::perimeter(geometry);
+    typename bg::distance_result<Geometry>::type perimeter = bg::perimeter(geometry);
 
 #ifdef GEOMETRY_TEST_DEBUG
     std::ostringstream out;
Modified: trunk/libs/geometry/test/algorithms/test_union.hpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/test_union.hpp	(original)
+++ trunk/libs/geometry/test/algorithms/test_union.hpp	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -12,6 +12,8 @@
 
 #include <geometry_test_common.hpp>
 
+#include <boost/range/algorithm/copy.hpp>
+
 #include <boost/geometry/algorithms/union.hpp>
 
 #include <boost/geometry/algorithms/area.hpp>
@@ -41,9 +43,9 @@
 {
     typedef typename bg::coordinate_type<G1>::type coordinate_type;
     std::vector<OutputType> clip;
-    bg::union_inserter<OutputType>(g1, g2, std::back_inserter(clip));
+    bg::union_(g1, g2, clip);
 
-    double area = 0;
+    typename bg::area_result<G1>::type area = 0;
     std::size_t n = 0;
     std::size_t holes = 0;
     for (typename std::vector<OutputType>::iterator it = clip.begin();
@@ -59,6 +61,16 @@
         n += bg::num_points(*it, true);
     }
 
+    {
+        // Test inserter functionality
+        // Test if inserter returns output-iterator (using Boost.Range copy)
+        std::vector<OutputType> inserted, array_with_one_empty_geometry;
+        array_with_one_empty_geometry.push_back(OutputType());
+        boost::copy(array_with_one_empty_geometry, bg::union_inserter<OutputType>(g1, g2, std::back_inserter(inserted)));
+        BOOST_CHECK_EQUAL(boost::size(clip), boost::size(inserted) - 1);
+    }
+
+
 
     /***
     std::cout << "case: " << caseid
Modified: trunk/libs/geometry/test/algorithms/transform.cpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/transform.cpp	(original)
+++ trunk/libs/geometry/test/algorithms/transform.cpp	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -23,7 +23,12 @@
 #include <test_common/test_point.hpp>
 
 template <typename P1, typename P2>
-void test_transform_point(double value)
+void test_transform_point(
+        typename bg::select_most_precise
+            <
+                typename bg::coordinate_type<P1>::type,
+                double
+            >::type value)
 {
     P1 p1;
     bg::set<0>(p1, 1);
@@ -31,8 +36,8 @@
     P2 p2;
     BOOST_CHECK(bg::transform(p1, p2));
 
-    BOOST_CHECK_CLOSE(value * bg::get<0>(p1), double(bg::get<0>(p2)), 0.001);
-    BOOST_CHECK_CLOSE(value * bg::get<1>(p1), double(bg::get<1>(p2)), 0.001);
+    BOOST_CHECK_CLOSE(value * bg::get<0>(p1), bg::get<0>(p2), 0.001);
+    BOOST_CHECK_CLOSE(value * bg::get<1>(p1), bg::get<1>(p2), 0.001);
 }
 
 template <typename P1, typename P2>
@@ -75,8 +80,8 @@
         spherical_type sph2;
         BOOST_CHECK(transform(p, sph2));
 
-        BOOST_CHECK_CLOSE(double(bg::get<0>(sph1)), double(bg::get<0>(sph2)), 0.001);
-        BOOST_CHECK_CLOSE(double(bg::get<1>(sph1)), double(bg::get<1>(sph2)), 0.001);
+        BOOST_CHECK_CLOSE(bg::get<0>(sph1), bg::get<0>(sph2), 0.001);
+        BOOST_CHECK_CLOSE(bg::get<1>(sph1), bg::get<1>(sph2), 0.001);
 
         //std::cout << dsv(p) << std::endl;
         //std::cout << dsv(sph2) << std::endl;
@@ -90,8 +95,8 @@
         BOOST_CHECK(transform(sph1, p));
         BOOST_CHECK(transform(p, sph2));
 
-        BOOST_CHECK_CLOSE(double(bg::get<0>(sph1)), double(bg::get<0>(sph2)), 0.001);
-        BOOST_CHECK_CLOSE(double(bg::get<1>(sph1)), double(bg::get<1>(sph2)), 0.001);
+        BOOST_CHECK_CLOSE(bg::get<0>(sph1), bg::get<0>(sph2), 0.001);
+        BOOST_CHECK_CLOSE(bg::get<1>(sph1), bg::get<1>(sph2), 0.001);
 
         //std::cout << dsv(sph1) << " " << dsv(p) << " " << dsv(sph2) << std::endl;
     }
@@ -117,5 +122,12 @@
     test_transformations<float, bg::radian>(3 * bg::math::d2r, 51 * bg::math::d2r, 1);
     test_transformations<double, bg::radian>(3 * bg::math::d2r, 51 * bg::math::d2r, 1);
 
+#if defined(HAVE_TTMATH)
+    typedef bg::model::d2::point_xy<ttmath_big > PT;
+    test_all<PT, PT>();
+    test_transformations<ttmath_big, bg::degree>(4, 52, 1);
+    test_transformations<ttmath_big, bg::radian>(3 * bg::math::d2r, 51 * bg::math::d2r, 1);
+#endif
+
     return 0;
 }
Modified: trunk/libs/geometry/test/algorithms/transform.vcproj
==============================================================================
--- trunk/libs/geometry/test/algorithms/transform.vcproj	(original)
+++ trunk/libs/geometry/test/algorithms/transform.vcproj	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -20,7 +20,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\transform"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
 			>
                         <Tool
@@ -93,7 +93,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\transform"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
                         WholeProgramOptimization="1"
 			>
Modified: trunk/libs/geometry/test/algorithms/union.cpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/union.cpp	(original)
+++ trunk/libs/geometry/test/algorithms/union.cpp	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -24,8 +24,11 @@
     test_one<Polygon, Polygon, Polygon>("star_ring", example_star, example_ring,
         1, 0, 23, 5.67017141);
 
+    // This sample was selected because of the border case, and ttmath generates one point more.
     test_one<Polygon, Polygon, Polygon>("star_poly", example_star, example_polygon,
-        1, 1, 27,  5.647949);
+        1, 1, 
+        boost::is_same<typename bg::coordinate_type<Ring>::type, ttmath_big>::value ? 28 : 27,  
+            5.647949);
 
     // Pseudo-box as Polygon
     // (note, internally, the intersection points is different, so yes,
Modified: trunk/libs/geometry/test/algorithms/union.vcproj
==============================================================================
--- trunk/libs/geometry/test/algorithms/union.vcproj	(original)
+++ trunk/libs/geometry/test/algorithms/union.vcproj	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -20,7 +20,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\union"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
 			>
                         <Tool
@@ -40,6 +40,7 @@
                         />
                         <Tool
                                 Name="VCCLCompilerTool"
+				AdditionalOptions="/bigobj"
                                 Optimization="0"
                                 AdditionalIncludeDirectories="../../../..;.."
                                 PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;NONDLL;_CRT_SECURE_NO_WARNINGS;TEST_WITH_SVG"
@@ -94,7 +95,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\union"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
                         WholeProgramOptimization="1"
 			>
Modified: trunk/libs/geometry/test/algorithms/unique.cpp
==============================================================================
--- trunk/libs/geometry/test/algorithms/unique.cpp	(original)
+++ trunk/libs/geometry/test/algorithms/unique.cpp	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -49,5 +49,9 @@
     test_all<bg::model::d2::point_xy<int> >();
     test_all<bg::model::d2::point_xy<double> >();
 
+#if defined(HAVE_TTMATH)
+    test_all<bg::model::d2::point_xy<ttmath_big> >();
+#endif
+
     return 0;
 }
Modified: trunk/libs/geometry/test/algorithms/unique.vcproj
==============================================================================
--- trunk/libs/geometry/test/algorithms/unique.vcproj	(original)
+++ trunk/libs/geometry/test/algorithms/unique.vcproj	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="Windows-1252"?>
 <VisualStudioProject
         ProjectType="Visual C++"
-	Version="8,00"
+	Version="8.00"
         Name="unique"
         ProjectGUID="{104D31F9-49BA-4A1A-B84F-0A3AEE3C4DB2}"
         RootNamespace="unique"
@@ -20,7 +20,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\unique"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
 			>
                         <Tool
@@ -93,7 +93,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\unique"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
                         WholeProgramOptimization="1"
 			>
Modified: trunk/libs/geometry/test/algorithms/within.vcproj
==============================================================================
--- trunk/libs/geometry/test/algorithms/within.vcproj	(original)
+++ trunk/libs/geometry/test/algorithms/within.vcproj	2011-02-27 11:27:57 EST (Sun, 27 Feb 2011)
@@ -20,7 +20,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\within"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
 			>
                         <Tool
@@ -93,7 +93,7 @@
                         OutputDirectory="$(SolutionDir)$(ConfigurationName)"
                         IntermediateDirectory="$(ConfigurationName)\within"
                         ConfigurationType="1"
-			InheritedPropertySheets="..\boost.vsprops"
+			InheritedPropertySheets="..\boost.vsprops;..\ttmath.vsprops"
                         CharacterSet="1"
                         WholeProgramOptimization="1"
 			>