/**
* Tests sorting of data by key (descending).
*/
public void testSortByValueDescending() {
final DefaultKeyedValues data = new DefaultKeyedValues();
data.addValue("C", new Double(1.0));
data.addValue("B", null);
data.addValue("D", new Double(3.0));
data.addValue("A", new Double(2.0));
data.sortByValues(SortOrder.DESCENDING);
// check key order
assertEquals(data.getKey(0), "D");
assertEquals(data.getKey(1), "A");
assertEquals(data.getKey(2), "C");
assertEquals(data.getKey(3), "B");
// check retrieve value by key
assertEquals(data.getValue("A"), new Double(2.0));
assertEquals(data.getValue("B"), null);
assertEquals(data.getValue("C"), new Double(1.0));
assertEquals(data.getValue("D"), new Double(3.0));
// check retrieve value by index
assertEquals(data.getValue(0), new Double(3.0));
assertEquals(data.getValue(1), new Double(2.0));
assertEquals(data.getValue(2), new Double(1.0));
assertEquals(data.getValue(3), null);
}