defineSuite([ 'Core/GeographicProjection', 'Core/Cartesian3', 'Core/Cartographic', 'Core/Ellipsoid', 'Core/Math' ], function( GeographicProjection, Cartesian3, Cartographic, Ellipsoid, CesiumMath) { 'use strict'; it('construct0', function() { var projection = new GeographicProjection(); expect(projection.ellipsoid).toEqual(Ellipsoid.WGS84); }); it('construct1', function() { var ellipsoid = Ellipsoid.UNIT_SPHERE; var projection = new GeographicProjection(ellipsoid); expect(projection.ellipsoid).toEqual(ellipsoid); }); it('project0', function() { var height = 10.0; var cartographic = new Cartographic(0.0, 0.0, height); var projection = new GeographicProjection(); expect(projection.project(cartographic)).toEqual(new Cartesian3(0.0, 0.0, height)); }); it('project1', function() { var ellipsoid = Ellipsoid.WGS84; var cartographic = new Cartographic(Math.PI, CesiumMath.PI_OVER_TWO, 0.0); var expected = new Cartesian3(Math.PI * ellipsoid.radii.x, CesiumMath.PI_OVER_TWO * ellipsoid.radii.x, 0.0); var projection = new GeographicProjection(ellipsoid); expect(projection.project(cartographic)).toEqual(expected); }); it('project2', function() { var ellipsoid = Ellipsoid.UNIT_SPHERE; var cartographic = new Cartographic(-Math.PI, CesiumMath.PI_OVER_TWO, 0.0); var expected = new Cartesian3(-Math.PI, CesiumMath.PI_OVER_TWO, 0.0); var projection = new GeographicProjection(ellipsoid); expect(projection.project(cartographic)).toEqual(expected); }); it('project3', function() { var ellipsoid = Ellipsoid.WGS84; var cartographic = new Cartographic(Math.PI, CesiumMath.PI_OVER_TWO, 0.0); var expected = new Cartesian3(Math.PI * ellipsoid.radii.x, CesiumMath.PI_OVER_TWO * ellipsoid.radii.x, 0.0); var projection = new GeographicProjection(ellipsoid); var result = new Cartesian3(0.0, 0.0, 0.0); var returnValue = projection.project(cartographic, result); expect(result).toEqual(returnValue); expect(result).toEqual(expected); }); it('unproject0', function() { var cartographic = new Cartographic(CesiumMath.PI_OVER_TWO, CesiumMath.PI_OVER_FOUR, 12.0); var projection = new GeographicProjection(); var projected = projection.project(cartographic); expect(projection.unproject(projected)).toEqual(cartographic); }); it('unproject1', function() { var cartographic = new Cartographic(CesiumMath.PI_OVER_TWO, CesiumMath.PI_OVER_FOUR, 12.0); var projection = new GeographicProjection(); var projected = projection.project(cartographic); var result = new Cartographic(0.0, 0.0, 0.0); var returnValue = projection.unproject(projected, result); expect(result).toEqual(returnValue); expect(result).toEqual(cartographic); }); it('project throws without cartesian', function() { var projection = new GeographicProjection(); expect(function() { return projection.unproject(); }).toThrowDeveloperError(); }); });