anchor.diff:  }
   
   void runICUTests(
  -    {int systemIcuVersion = null,
  -    String specialIcuLib = null,
  -    List<String> skipLocales = null}) {
  +    {int? systemIcuVersion, String? specialIcuLib, List<String>? skipLocales}) {
     if (!setupICU(
         systemIcuVersion: systemIcuVersion, specialIcuLibPath: specialIcuLib)) {
       return;
  
positive.code:   var locale = 'en';
    var skel = 'compact-short';
    if (t.minimumIntegerDigits != null) {
      skel += ' integer-width/+' + '0' * t.minimumIntegerDigits;
    }
    if (t.significantDigits != null) {
      skel += ' ' + '@' * t.significantDigits;
    }
    if (t.minimumFractionDigits != null) {
      skel += ' .' + '0' * t.minimumFractionDigits;
      var maxFD = t.maximumFractionDigits ?? 3;
      skel += '#' * (maxFD - t.minimumFractionDigits);
    } else if (t.maximumFractionDigits != null) {
      skel += ' .' + '#' * t.maximumFractionDigits;
    }
    test(t.toString(), () {
      expect(FormatWithUnumf(locale, skel, t.number), t.expected,
  
negative.code:   // unumf_resultToString(uresult, buffer, len+1, &ec);
    // if (U_FAILURE(ec)) { return; }
    // // buffer should equal "5,142"
    final reqLen = unumf_resultToString!(uresult, nullptr.cast(), 0, cErrorCode);
    errorCode = cErrorCode.value;
    expect(errorCode, equals(15), // U_BUFFER_OVERFLOW_ERROR
        reason: u_errorName!(errorCode).toString());
    cErrorCode.value = 0;
    final buffer = allocate<Utf16>(count: reqLen + 1);
    unumf_resultToString!(uresult, buffer, reqLen + 1, cErrorCode);
    errorCode = cErrorCode.value;
    expect(errorCode, lessThanOrEqualTo(0),
        reason: u_errorName!(errorCode).toString());
    final result = buffer.toString();
  
    // // Cleanup:
    // unumf_close(uformatter);
    // unumf_closeResult(uresult);
    // free(buffer);
    unumf_close!(uformatter);
    unumf_closeResult!(uresult);
    free(buffer);
    free(cErrorCode);
  
  