package com.googlecode.aviator.runtime.function.seq; import static org.junit.Assert.*; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Set; import org.junit.Test; import com.googlecode.aviator.runtime.type.AviatorObject; import com.googlecode.aviator.runtime.type.AviatorRuntimeJavaType; public class SeqSortFunctionUnitTest { @Test public void testSort_Array() { Integer[] a = new Integer[10]; int index = 0; for (int i = 9; i >= 0; i--) { a[index++] = i; } SeqSortFunction fun = new SeqSortFunction(); AviatorObject result = fun.call(null, new AviatorRuntimeJavaType(a)); index = 0; Integer[] dup = (Integer[]) result.getValue(null); assertFalse(Arrays.equals(a, dup)); for (Integer i : dup) { assertEquals(i, index++); } } @Test public void testSort_List() { List<Integer> a = new ArrayList<Integer>(); int index = 0; for (int i = 9; i >= 0; i--) { a.add(i); } SeqSortFunction fun = new SeqSortFunction(); AviatorObject result = fun.call(null, new AviatorRuntimeJavaType(a)); index = 0; List<Integer> dup = (List<Integer>) result.getValue(null); assertFalse(a.equals(dup)); System.out.println(a); System.out.println(dup); for (Integer i : dup) { assertEquals(i, index++); } } @Test(expected = IllegalArgumentException.class) public void testSort_HashSet() { Set<Integer> a = new HashSet<Integer>(); int index = 0; for (int i = 9; i >= 0; i--) { a.add(i); } SeqSortFunction fun = new SeqSortFunction(); AviatorObject result = fun.call(null, new AviatorRuntimeJavaType(a)); } }