float[] f1 = { 3.4, 3.6, 2, 0, 7.1 };
float[] rf1 = {0.0, 2.0, 3.4, 3.6, 7.1};

float[] f2 = {0.0};
float[] rf2 = {0.0};

float[] f3 = {5,4,3,2,1};
float[] rf3 = {1,2,3,4,5};

float[] f4 = {4.4, 3.3, 2.2, 1.1};
float[] rf4 = {1.1, 2.2, 3.3, 4.4};

float[] f5_4 = {6.6, 4.4, 3.3, 9.9, 7.7, 4.4, 1.1};
float[] rf5_4 = {3.3, 4.4, 6.6, 9.9, 7.7, 4.4, 1.1};
 
float[] f6_1 = {6.6, 4.4, 3.3, 9.9, 7.7, 4.4, 1.1};
float[] rf6_1 = {6.6, 4.4, 3.3, 9.9, 7.7, 4.4, 1.1 };

float[] f7_5 = {4.4, 3.3, 1.1, 6.6, 8.8};
float[] rf7_5 = {1.1, 3.3, 4.4, 6.6, 8.8};

float[] f8 = {1,2,3,4};
float[] rf8 = {1,2,3,4};

float[] f9_3 = {1,2,3,4,5};
float[] rf9_3 = {1,2,3,4,5};

float[] f10 = { 7.7, 3.1, 9.9, 6.5, 9.8, 3.14, 3.4, 5.6};
float[] rf10 = {3.1, 3.14, 3.4, 5.6, 6.5, 7.7, 9.8, 9.9};

float[] f11 ={9.0, -7.3, 0.0, 5.1, 9.34, 2.8, 1, 8, 3, 0};
float[] rf11 = {-7.3, 0.0, 0.0, 1.0, 2.8, 3.0, 5.1, 8.0, 9.0, 9.34};

float[] f12 = {};
float[] rf12 ={};

float[] f13_9 ={8,4,6,7,9,0,-9,2,4,1,1,1,1,1,1,1,1};
float[] rf13_9 = {-9,0,2,4,4,6,7,8,9,1,1,1,1,1,1,1,1};

// INTS
int[] i1 = {1,2,3,4,5};
int[] ri1 = {1,2,3,4,5};

int[] i2_3 = {1,2,3,4,5};
int[] ri2_3 = {1,2,3,4,5};

int[] i3 = {5,4,3,2,1};
int[] ri3 = {1,2,3,4,5};

int[] i4 ={2,7,4,8,1,2,9};
int[] ri4 = {1,2,2,4,7,8,9};

int[] i5_4 = {2,7,4,8,1,2,9};
int[] ri5_4 = {2,4,7,8,1,2,9};

int[] i6 = {4,3,1,2,3,4,1,2,2,3,4,1};
int[] ri6 = {1,1,1,2,2,2,3,3,3,4,4,4};

int[] i7 = {1,1,1};
int[] ri7 = {1,1,1};

int[] i8_3 = {1,2,1,5,6,7};
int[] ri8_3 = {1,1,2,5,6,7};

int[] i9 = {0};
int[] ri9 = {0};

int[] i10 = {};
int[] ri10 = {};

int[] i11_8 = {5,1,9,7,3,4,5,6,1};
int[] ri11_8 = {1,3,4,5,5,6,7,9,1};

int[][] i12 = {{3,2,1},{4,5,6}};
int[] ri12 = {1,2,3};

int[][] i13_5 = {{5,8,1,3,9},{4,7,8,9,2},{3,1,7,9,3},{7,4,9,7,9,0,3}};
int[] ri13_5 = {4,7,7,9,9,0,3};

// STRINGS
String[] s1 ={"deer", "elephant", "bear", "aardvark", "cat"};
String[] rs1 = {"aardvark", "bear", "cat", "deer", "elephant"};
 
String[] s2_3 ={"deer", "elephant", "bear", "aardvark", "cat" };
String[] rs2_3 = {"bear", "deer", "elephant", "aardvark", "cat" };

String[] s3 ={"A", "B", "C", "D"};
String[] rs3 = {"A", "B", "C", "D"};

String[] s4 ={"Z","Y","X"};
String[] rs4 = {"X","Y","Z"};

String[] s5 ={"A", "b", "C", "a", "c", "B"};
String[] rs5 ={"A", "B", "C", "a", "b", "c"}; //case sensitive
//String[] rs5 = {"A", "a", "b", "B", "C", "c"}; case insensitive
 
String[] s6 ={"Andor","DPS909","andor","salga","Salga"};
String[] rs6 = {"Andor","DPS909","Salga","andor","salga"};
//String[] rs6 = {"Andor","andor","DPS909","salga","Salga"}; 
 
String[] s7 ={"abc","def","xyz","qrs","ghi","lmn"};
String[] rs7 = {"abc","def","ghi","lmn","qrs","xyz"};
 
String[] s8_4 ={"abc","def","xyz","qrs","ghi","lmn"};
String[] rs8_4 = {"abc","def","qrs","xyz","ghi","lmn"};

String[][] s9 = {
{"ABC","YYX"},
 {"123","456","993","42","67"},
 {"XYZ"}
};
String[]rs9 = {"123","42","456","67","993"}; 
 
String[] s10 ={"#","*","@","(","$","a","5","~"};
String[] rs10 = {"#","$","(","*","5","@","a","~"};
 
String[] s11 = {};
String[] rs11 = {};
 
String[] s12 ={"6.3","1.7","-9.5","2.5","4.4","1.5", "7", "0.5","-8.4"};
String[] rs12 = {"-8.4", "-9.5", "0.5", "1.5","1.7","2.5", "4.4", "6.3", "7"};
 
String[] s13 = {"a"};
String[] rs13 = {"a"};
 
String[] s14 = {"a","b"};
String[] rs14 = {"a","b"};
 
String[] s15 = {"b","a"};
String[] rs15 = {"a","b"};
 
String[] s16 = {"a","b","c","b","a"};
String[] rs16 = {"a","a","b","b","c"};

_checkEqual(sort(s1), rs1);
_checkEqual(sort(s2_3,3), rs2_3);
_checkEqual(sort(s3), rs3);
_checkEqual(sort(s4), rs4);
_checkEqual(sort(s5), rs5);
_checkEqual(sort(s6), rs6);
_checkEqual(sort(s7), rs7);
_checkEqual(sort(s8_4,4), rs8_4);
_checkEqual(sort(s9[1]), rs9);
_checkEqual(sort(s10), rs10);
_checkEqual(sort(s11), rs11);
_checkEqual(sort(s12), rs12);
_checkEqual(sort(s13), rs13);
_checkEqual(sort(s14), rs14);
_checkEqual(sort(s15), rs15);
_checkEqual(sort(s16), rs16);

_checkEqual(sort(i1), ri1);
_checkEqual(sort(i2_3), ri2_3);
_checkEqual(sort(i3), ri3);
_checkEqual(sort(i4), ri4);
_checkEqual(sort(i5_4,4), ri5_4);
_checkEqual(sort(i6), ri6);
_checkEqual(sort(i7), ri7);
_checkEqual(sort(i8_3), ri8_3);
_checkEqual(sort(i9), ri9);
_checkEqual(sort(i10), ri10);
_checkEqual(sort(i11_8,8), ri11_8);
_checkEqual(sort(i12[0]), ri12);
_checkEqual(sort(i13_5[3],5), ri13_5);

// FLOATS
_checkEqual(sort(f1), rf1);
_checkEqual(sort(f2), rf2);
_checkEqual(sort(f3), rf3);
_checkEqual(sort(f4), rf4);
_checkEqual(sort(f5_4, 4), rf5_4);
_checkEqual(sort(f6_1, 1), rf6_1);
_checkEqual(sort(f7_5, 5), rf7_5);
_checkEqual(sort(f8), rf8);
_checkEqual(sort(f9_3), rf9_3);
_checkEqual(sort(f10), rf10);
_checkEqual(sort(f11), rf11);
_checkEqual(sort(f12), rf12);
_checkEqual(sort(f13_9,9), rf13_9); 
