anchor.diff:    // performanceTest();
   }
   
  -void functionalTest() {
  -  var shape = [2, 6, 6];
  -  var reductionAxis = [1];
  +void functionalTest3() {
  +  var shape = [2, 2, 6, 6];
  +  var reductionAxis = [3];
   
     var expectedValue = new tm.NDArray.generate(shape, (index) => index + 1,
  -          dataType: tm.NDDataType.float32)
  +      dataType: tm.NDDataType.float32)
         .reduceSum(reductionAxis: reductionAxis)
         .toValue();
   
     var value = new tm.NDArray.generate(shape, (index) => index + 1,
  -          dataType: tm.NDDataType.float32VBlocked);
  +      dataType: tm.NDDataType.float32HBlocked)
  +      .reduceSum(reductionAxis: reductionAxis)
  +      .toValue();
   
  -  value = value
  +  if (!iterableEquality.equals(value, expectedValue)) {
  +    throw new StateError("not equals: $value $expectedValue");
  +  }
  +
  +  value = new tm.NDArray.generate(shape, (index) => index + 1,
  +      dataType: tm.NDDataType.float32VBlocked)
         .reduceSum(reductionAxis: reductionAxis)
         .toValue();
   
  
positive.code:   }
  }
  
  void functionalTest3() {
    var shape = [2, 2, 6, 6];
    var reductionAxis = [2];
  
  
negative.code:   }
  }
  
  void functionalTest1() {
    var shape = [2, 2, 6, 6];
    var reductionAxis = [0];
  
    var expectedValue = new tm.NDArray.generate(shape, (index) => index + 1,
        dataType: tm.NDDataType.float32)
        .reduceSum(reductionAxis: reductionAxis)
        .toValue();
  
    var value = new tm.NDArray.generate(shape, (index) => index + 1,
        dataType: tm.NDDataType.float32HBlocked)
        .reduceSum(reductionAxis: reductionAxis)
        .toValue();
  
    if (!iterableEquality.equals(value, expectedValue)) {
      throw new StateError("not equals: $value $expectedValue");
    }
  
    value = new tm.NDArray.generate(shape, (index) => index + 1,
        dataType: tm.NDDataType.float32VBlocked)
        .reduceSum(reductionAxis: reductionAxis)
        .toValue();
  
    if (!iterableEquality.equals(value, expectedValue)) {
      throw new StateError("not equals: $value $expectedValue");
    }
  }