| var assert = require("../assert"), | |
| _ = require("../../"), | |
| format = _.format("13.8f"); | |
| module.exports = function(suite, mapping) { | |
| for (var place in mapping) { | |
| suite[place] = test(mapping[place][0], mapping[place][1]); | |
| } | |
| function test(location, point) { | |
| return function(projection) { | |
| var actualLocation = projection.invert(point), | |
| actualPoint = projection(location); | |
| try { | |
| assert.inDelta([actualPoint, actualLocation], [point, location], 1e-5); | |
| } catch (e) { | |
| e.message = "project [[" | |
| + location.map(format).join(", ") + "], [" + actualPoint.map(format).join(", ") | |
| + "]]\n invert [[" | |
| + actualLocation.map(format).join(", ") + "], [" + point.map(format).join(", ") | |
| + "]]"; | |
| throw e; | |
| } | |
| }; | |
| } | |
| return suite; | |
| }; |