1
+ import java .util .Arrays ;
2
+ import java .util .Random ;
3
+ import org .junit .Before ;
4
+ import org .junit .Test ;
5
+ import static org .junit .Assert .assertTrue ;
6
+ import static org .junit .Assert .fail ;
7
+ public class QuicksortTest {
8
+ private int [] numbers ;
9
+ private final static int SIZE = 7 ;
10
+ private final static int MAX = 15 ;
11
+ @ Before
12
+ public void setUp () throws Exception {
13
+ numbers = new int [SIZE ];
14
+ Random generator = new Random ();
15
+ for (int i = 0 ; i < numbers .length ; i ++) {
16
+ numbers [i ] = generator .nextInt (MAX );
17
+ }
18
+ }
19
+ @ Test
20
+ public void testNull () {
21
+ Quicksort sorter = new Quicksort ();
22
+ sorter .sort (null );
23
+ }
24
+ @ Test
25
+ public void testEmpty () {
26
+ Quicksort sorter = new Quicksort ();
27
+ sorter .sort (new int [0 ]);
28
+ }
29
+ @ Test
30
+ public void testSimpleElement () {
31
+ Quicksort sorter = new Quicksort ();
32
+ int [] test = new int [1 ];
33
+ test [0 ] = 7 ;
34
+ sorter .sort (test );
35
+ }
36
+ @ Test
37
+ public void testSpecial () {
38
+ Quicksort sorter = new Quicksort ();
39
+ int [] test = { 8 ,9 ,13 ,14 ,1 ,3 ,6 ,12 ,10 ,2 ,11 ,4 ,5 ,7 ,15 };
40
+ sorter .sort (test );
41
+ if (!validate (test )) {
42
+ fail ("Should not happen" );
43
+ }
44
+ printResult (test );
45
+ }
46
+ @ Test
47
+ public void testQuickSort () {
48
+ for (Integer i : numbers ) {
49
+ System .out .println (i + " " );
50
+ }
51
+ long startTime = System .currentTimeMillis ();
52
+ Quicksort sorter = new Quicksort ();
53
+ sorter .sort (numbers );
54
+ long stopTime = System .currentTimeMillis ();
55
+ long elapsedTime = stopTime - startTime ;
56
+ System .out .println ("Quicksort " + elapsedTime );
57
+ if (!validate (numbers )) {
58
+ fail ("Should not happen" );
59
+ }
60
+ assertTrue (true );
61
+ }
62
+ @ Test
63
+ public void testStandardSort () {
64
+ long startTime = System .currentTimeMillis ();
65
+ Arrays .sort (numbers );
66
+ long stopTime = System .currentTimeMillis ();
67
+ long elapsedTime = stopTime - startTime ;
68
+ System .out .println ("Standard Java sort " + elapsedTime );
69
+ if (!validate (numbers )) {
70
+ fail ("Should not happen" );
71
+ }
72
+ assertTrue (true );
73
+ }
74
+ private boolean validate (int [] numbers ) {
75
+ for (int i = 0 ; i < numbers .length - 1 ; i ++) {
76
+ if (numbers [i ] > numbers [i + 1 ]) {
77
+ return false ;
78
+ }
79
+ }
80
+ return true ;
81
+ }
82
+ private void printResult (int [] numbers ) {
83
+ for (int i = 0 ; i < numbers .length ; i ++) {
84
+ System .out .print (numbers [i ]);
85
+ }
86
+ System .out .println ();
87
+ }
88
+ }
0 commit comments