  >>> from liblas import srs
  >>> import liblas
  >>> s = srs.SRS()
  >>> s.proj4
  ''
  >>> s.proj4 = '+proj=utm +zone=15 +ellps=WGS84 +datum=WGS84 +units=m +no_defs'

  >>> def test_srs():
  ...     if not liblas.HAVE_LIBGEOTIFF:
  ...         return True
  ...     if not liblas.HAVE_GDAL: 
  ...         return s.proj4 == '+proj=tmerc +lat_0=0.000000000 +lon_0=-93.000000000 +k=0.999600 +x_0=500000.000 +y_0=0.000 +ellps=WGS84 +units=m '
  ...     if liblas.HAVE_GDAL:
  ...         return s.proj4 == '+proj=utm +zone=15 +ellps=WGS84 +datum=WGS84 +units=m +no_defs '
  ...     return False
  
  >>> test_srs()
  True
  
  >>> from liblas import file
  >>> f = file.File('../test/data/1.2_3.las',mode='r')
  >>> s = f.header.srs
  >>> def test_srs():
  ...     if not liblas.HAVE_LIBGEOTIFF:
  ...         return True
  ...     if not liblas.HAVE_GDAL: 
  ...         return s.wkt == ''
  ...     if liblas.HAVE_GDAL:
  ...         return s.wkt == """PROJCS["NAD83 / UTM zone 15N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.2572221010002,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0],UNIT["degree",0.0174532925199433],AUTHORITY["EPSG","4269"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-93],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","26915"]]"""
  ...     return False
  
  >>> test_srs()
  True

#  ...         s2.wkt = """GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]"""
#  ...         s2.wkt = """PROJCS["NAD83 / UTM zone 16N",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],UNIT["metre",1,AUTHORITY["EPSG","9001"]],PROJECTION["Transverse_Mercator"],PARAMETER["latitude_of_origin",0],PARAMETER["central_meridian",-87],PARAMETER["scale_factor",0.9996],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],AUTHORITY["EPSG","26916"],AXIS["Easting",EAST],AXIS["Northing",NORTH]]"""

  >>> def test_srs():
  ...     if not liblas.HAVE_LIBGEOTIFF:
  ...         return True
  ...     if not liblas.HAVE_GDAL: 
  ...         return True
  ...     if liblas.HAVE_GDAL:
  ...         s2 = srs.SRS()
  ...         s2.wkt = """GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.01745329251994328,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]"""
  ...         p = f.read(0)
  ...         p.descale(f.header)
  ...         if int(p.x) != 47069244: return False
  ...         f.set_srs(s2)
  ...         p = f.read(0)
  ...         p.descale(f.header)
  ...         if not s2.vlr_count() == 3: return False
  ...         if not s2.GetVLR(0).recordlength == 64: return False
  ...         return int(round(p.x)) == -93  and int(round(p.y)) == 90
  ...     return False  

  >>> test_srs()
  True