34 lines
		
	
	
		
			942 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			942 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
'use strict';
 | 
						|
 | 
						|
var tests = require('./generated-locations.json');
 | 
						|
var jS2 = require('../src/s2geometry.js').S2;
 | 
						|
 | 
						|
function checkReal(loc) {
 | 
						|
  var jCell = jS2.S2Cell.FromLatLng({ lat: loc.lat, lng: loc.lng }, 15);
 | 
						|
  var jQuad = jCell.getFaceAndQuads();
 | 
						|
  var jKey = jQuad[0] + '/' + jQuad[1].join('');
 | 
						|
 | 
						|
  if (loc.quadkey !== jKey) {
 | 
						|
    loc.badFace = jCell.face;
 | 
						|
    loc.badI = jCell.ij[0];
 | 
						|
    loc.badJ = jCell.ij[1];
 | 
						|
    loc.badQuad = jKey;
 | 
						|
    loc.badId = jS2.toId(jKey);
 | 
						|
    console.log(JSON.stringify(loc, null, '  ') + ',');
 | 
						|
    console.log('');
 | 
						|
    console.log('Lat/Lng:', loc.lat, loc.lng);
 | 
						|
    console.log('');
 | 
						|
    console.log('I, J:');
 | 
						|
    console.log('=', loc.i, loc.j);
 | 
						|
    console.log('j', jCell.ij.join(', '));
 | 
						|
    console.log('');
 | 
						|
    console.log('Quadkey');
 | 
						|
    console.log('=', loc.quadkey);
 | 
						|
    console.log('j', jKey);
 | 
						|
    throw new Error("values didn't match expected");
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
tests.forEach(checkReal);
 | 
						|
console.log('PASS');
 |