anchor.diff:      DateTime start = new DateTime.now();
       for (var i = 0; i < times; i++) {
         prepareData();
  -      if (times == 1) {
  -        print('Before sort:');
  -        print(this);
  -      }
  +      sortFn(dataStore, swap);
  +    }
   
  -      sortFn(dataStore, swap);
  -
  -      if (times == 1) {
  -        print('After sort:');
  -        print(this);
  -      }
  -    }
  -    if (times > 1) {
  -      var costTime = new DateTime.now().difference(start).inMilliseconds;
  -      print('$times times cost: $costTime ms');
  -    }
  +    var costTime = new DateTime.now().difference(start).inMilliseconds;
  +    print('${dataStore.length} items costs : $costTime ms');
     }
   
     clear() {
  
positive.code: 
    group('Basic sort -', () {
      test('bubble sort', () {
        new TestBed(1000, bubbleSort, times: 1000);
      });
  
      test('selection sort', () {
        new TestBed(500, selectionSort, times: 10000);
      });
  
      test('insertion sort', () {
        new TestBed(500, insertionSort, times: 10000);
      });
    });
  
    group('Advanced sort -', () {
      test('shell sort', () {
        new TestBed(500, shellSort, times: 10000);
      });
  
      test('merge sort', () {
        new TestBed(500, mergeSort, times: 10000);
      });
  
      test('quick sort', () {
        new TestBed(500, quickSort, times: 10000);
      });
    });
  }
  
negative.code:     arr[index2] = temp;
    }
  
    bool check() {
      sort();
  
      var prev = -1;
      for (var i in dataStore) {
        if (i >= prev) {
          prev = i;
        } else {
          return false;
        }
      }
      return true;
    }
  
    String toString() {
      return dataStore.toString();
    }
  