//package org.styloot.hobo.test;
import org.junit.*;
import static org.junit.Assert.*;
import org.styloot.hobo.Item;
import org.styloot.hobo.CIELabColor;
import org.styloot.hobo.Feature;
import java.util.*;
public class TestItem {
Item item1;
Item item2;
Vector<String> features;
private static double TOLERANCE = 1e-12;
@Before public void setUp() {
features = new Vector<String>();
for (int i=0;i<10;i++) {
features.add("feature-" + i);
}
item1 = new Item("1", "/baz", features, 3, CIELabColor.CIELabFromRGB(255,16,0), 5);
item2 = new Item("1", "/baz", (String[])null, 1, null, 5);
}
@Test public void testCompare(){
assertTrue( item1.compareTo(item2) < 0 );
assertTrue( item2.compareTo(item1) > 0 );
}
@Test public void testHasFeatures(){
assertTrue( item1.hasFeatures(features) );
}
@Test public void testHasFeatures2(){
Vector<String> f = new Vector<String>();
for (int j=0;j<10;j++) {
if (Math.random() > 0.5) {
f.add("feature-" + j);
}
}
assertTrue( item1.hasFeatures(f) ); //Contains a subset of features
}
@Test public void testHasFeatures3(){
Vector<String> f = new Vector<String>();
f.add("baz");
assertTrue(!item1.hasFeatures(f)); //Does not contain baz
}
@Test public void testHasFeatures4(){
Vector<String> f = new Vector<String>();
assertTrue(item1.hasFeatures(f)); //Contains empty featureset
}
@Test public void testHasFeaturesNull(){
Vector<String> f = new Vector<String>();
f.add("buz");
assertTrue(!item2.hasFeatures(f)); //Does not contain anything
}
@Test public void testHasFeaturesNull2(){
Vector<String> f = new Vector<String>();
assertTrue(item2.hasFeatures(f)); //Does contain nothing
}
@Test public void testHasFeaturesSorted() {
Vector<String> f = new Vector<String>();
for (int j=0;j<10;j++) {
if (Math.random() > 0.5) {
f.add("feature-" + j);
}
}
assertTrue(item1.hasFeaturesSorted(Feature.getFeatures(f))); //Contains a subset of features
}
@Test public void testHasFeaturesSorted2() {
Vector<String> f = new Vector<String>();
for (int j=0;j<10;j++) {
if (Math.random() > 0.5) {
f.add("feature-" + j);
}
}
f.add("buz");
assertTrue(!item1.hasFeaturesSorted(Feature.getFeatures(f))); //Does not contain a subset of features
}
@Test public void testColorDistFrom() {
CIELabColor color = CIELabColor.CIELabFromRGB(25,16,125);
assertEquals(item1.colorDist2From(color), color.distance2To(item1.getColor()), TOLERANCE); //Does not contain a subset of features
}
}