@Test
public void testUnequalValueQuantityAscendingSort() {

    Map<Long, Map<String, Set<TObject>>> records = Maps.newLinkedHashMap();
    List<String> keys = Lists.newArrayList("name", "company", "age");
    Map<String, Set<TObject>> entry = TMaps
            .newLinkedHashMapWithCapacity(keys.size());
    Set<TObject> values = Sets.newHashSet(Convert.javaToThrift("jeff"));
    entry.put("name", values);
    values = Sets.newHashSet(Convert.javaToThrift("Cinchapi"),
            Convert.javaToThrift("Blavity"));
    entry.put("company", values);
    values = Sets.newHashSet(Convert.javaToThrift(50));
    entry.put("age", values);
    TMaps.putResultDatasetOptimized(records, Integer.toUnsignedLong(1),
            entry);
    entry = TMaps.newLinkedHashMapWithCapacity(keys.size());
    values = Sets.newHashSet(Convert.javaToThrift("ashleah"));
    entry.put("name", values);
    values = Sets.newHashSet(Convert.javaToThrift("ARMN Inc."));
    entry.put("company", values);
    values = Sets.newHashSet(Convert.javaToThrift(25));
    entry.put("age", values);
    TMaps.putResultDatasetOptimized(records, Integer.toUnsignedLong(2),
            entry);
    entry = TMaps.newLinkedHashMapWithCapacity(keys.size());
    values = Sets.newHashSet(Convert.javaToThrift("mark"));
    entry.put("name", values);
    values = Sets.newHashSet(Convert.javaToThrift("Cinchapi"));
    entry.put("company", values);
    values = Sets.newHashSet(Convert.javaToThrift(100));
    entry.put("age", values);
    TMaps.putResultDatasetOptimized(records, Integer.toUnsignedLong(3),
            entry);
    Order order = Order.by("company").ascending().build();
    Store store = new Queue(1);
    Map<Long, Map<String, Set<TObject>>> result = Sorting
            .byValues(order, store).sort(records);
    List<Long> expectedSort = Lists.newArrayList();
    expectedSort.add(Integer.toUnsignedLong(2));
    expectedSort.add(Integer.toUnsignedLong(1));
    expectedSort.add(Integer.toUnsignedLong(3));
    List<Long> sort = Lists.newArrayList(result.keySet());
    Assert.assertEquals(expectedSort, sort);
}