package com.michaldabski.panoramio;
import android.app.Application;
import android.test.ApplicationTestCase;
import com.michaldabski.panoramio.models.Photo;
import com.michaldabski.panoramio.utils.PhotoDistanceComparator;
import junit.framework.Assert;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
* <a href="http://d.android.com/tools/testing/testing_android.html">Testing Fundamentals</a>
*/
public class ApplicationTest extends ApplicationTestCase<Application> {
public ApplicationTest() {
super(Application.class);
}
public void testComparator() throws Exception
{
PhotoDistanceComparator comparator = new PhotoDistanceComparator(0f, 0f);
assertEquals(0d, PhotoDistanceComparator.distance(0, 0, 0, 0));
Photo
nearPhoto = new Photo(0, 0, 1, 1, 0, "", "", "", 0, "Nearby photo", ""),
mediumPhoto = new Photo(0, 0, 10, 10, 0, "", "", "", 1, "medium photo", ""),
farPhoto = new Photo(0, 0, 100, 100, 0, "", "", "", 2, "Nearby photo", "");
List<Photo> photos = Arrays.asList(
mediumPhoto,
farPhoto,
nearPhoto
);
Assert.assertEquals(0, comparator.compare(nearPhoto, nearPhoto));
Assert.assertEquals(0, comparator.compare(mediumPhoto, mediumPhoto));
Assert.assertEquals(0, comparator.compare(farPhoto, farPhoto));
Assert.assertEquals(-1, comparator.compare(nearPhoto, farPhoto));
Assert.assertEquals(-1, comparator.compare(nearPhoto, mediumPhoto));
Assert.assertEquals(-1, comparator.compare(mediumPhoto, farPhoto));
Assert.assertEquals(1, comparator.compare(farPhoto, nearPhoto));
Assert.assertEquals(1, comparator.compare(mediumPhoto, nearPhoto));
Assert.assertEquals(1, comparator.compare(farPhoto, mediumPhoto));
Collections.sort(photos, comparator);
assertEquals(0, photos.indexOf(nearPhoto));
assertEquals(1, photos.indexOf(mediumPhoto));
assertEquals(2, photos.indexOf(farPhoto));
comparator = new PhotoDistanceComparator(53.318938f, -6.403647f);
nearPhoto = new Photo(0, 0, 53.323321f, -6.395751f, 0, "", "", "", 0, "Nearby photo", "");
mediumPhoto = new Photo(0, 0, 53.332125f, -6.406866f, 0, "", "", "", 1, "medium photo", "");
farPhoto = new Photo(0, 0, 53.310861f, -6.490808f, 0, "", "", "", 2, "Nearby photo", "");
photos = Arrays.asList(
mediumPhoto,
farPhoto,
nearPhoto
);
Assert.assertEquals(0, comparator.compare(nearPhoto, nearPhoto));
Assert.assertEquals(0, comparator.compare(mediumPhoto, mediumPhoto));
Assert.assertEquals(0, comparator.compare(farPhoto, farPhoto));
Assert.assertEquals(-1, comparator.compare(nearPhoto, farPhoto));
Assert.assertEquals(-1, comparator.compare(nearPhoto, mediumPhoto));
Assert.assertEquals(-1, comparator.compare(mediumPhoto, farPhoto));
Assert.assertEquals(1, comparator.compare(farPhoto, nearPhoto));
Assert.assertEquals(1, comparator.compare(mediumPhoto, nearPhoto));
Assert.assertEquals(1, comparator.compare(farPhoto, mediumPhoto));
Collections.sort(photos, comparator);
assertEquals(0, photos.indexOf(nearPhoto));
assertEquals(1, photos.indexOf(mediumPhoto));
assertEquals(2, photos.indexOf(farPhoto));
}
}