package qa.qcri.aidr.trainer.pybossa.service;
import org.json.simple.JSONObject;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import qa.qcri.aidr.trainer.pybossa.util.LatLngUtils;
import java.util.Arrays;
/**
* Created with IntelliJ IDEA.
* User: jilucas
* Date: 9/29/13
* Time: 1:01 PM
* To change this template use File | Settings | File Templates.
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:spring/applicationContext.xml", "classpath:spring/hibernateContext.xml"})
public class ClientAppRunWorkerTest {
@Autowired
private ClientAppRunWorker clientAppRunWorker;
@Test
public void testProcessTaskPublish() throws Exception {
//clientAppRunWorker.processTaskRunImport();
// clientAppRunWorker.processTaskPublish();
}
public void testGeoCalculation() throws Exception {
//121.07551516934, 14.298073550000003
double lat1 = 14.298073550000003;
double lon1 = 121.07551516934;
//120.9370878, 14.327082399999979
double lat2 = 14.327082399999979;
double lon2 = 120.9370878;
//121.07551516934, 14.298073550000003
double lat3 = 14.298073550000003;
double lon3 = 121.07551516934;
// new york
//double lat1 = 40.7143528;
//double lon1 = -74.0059731;
// chicago
//double lat2 = 41.8781136;
//double lon2 = -87.6297982;
// Atlanta
//double lat3 = 33.7489954;
//double lon3 = -84.3879824;
double results[] = new double[2];
LatLngUtils.geoMidPointFor3Points(lat1, lon1,lat2, lon2, lat3, lon3, results);
JSONObject jsonObject = new JSONObject();
jsonObject.put("coordinates", Arrays.toString(results));
jsonObject.put("type", "Point");
JSONObject geoResponse = new JSONObject();
geoResponse.put("geometry", jsonObject);
System.out.println(geoResponse.toJSONString());
double[] distance = new double[3];
double[] distanceInMile= new double[1];
double lon = results[0];
double lat = results[1];
LatLngUtils.computeDistanceInMile(lat, lon, lat1, lon1, distanceInMile);
distance[0] = distanceInMile[0];
LatLngUtils.computeDistanceInMile(lat, lon, lat2, lon2, distanceInMile);
distance[1] = distanceInMile[0];
LatLngUtils.computeDistanceInMile(lat, lon, lat3, lon3, distanceInMile);
distance[2] = distanceInMile[0];
Arrays.sort(distance) ;
double maxDistance = distance[2];
System.out.println("maxDistance : " + maxDistance);
}
}