cast<T extends num> method

Statistics<T> cast<T extends num>()

Casts this instance to Statistics<T>.

Implementation

Statistics<T> cast<T extends num>() {
  if (T == int) {
    if (this is Statistics<T>) {
      return this as Statistics<T>;
    }

    return Statistics<int>(
      length,
      min.toInt(),
      max.toInt(),
      medianLow: medianLow.toInt(),
      medianHigh: medianHigh.toInt(),
      mean: mean,
      standardDeviation: standardDeviation,
      sum: sum,
      squaresSum: squaresSum,
      lowerStatistics: lowerStatistics?.cast<int>(),
      upperStatistics: upperStatistics?.cast<int>(),
    ) as Statistics<T>;
  } else if (T == double) {
    if (this is Statistics<T>) {
      return this as Statistics<T>;
    }

    return Statistics<double>(
      length,
      min.toDouble(),
      max.toDouble(),
      medianLow: medianLow.toDouble(),
      medianHigh: medianHigh.toDouble(),
      mean: mean,
      standardDeviation: standardDeviation,
      sum: sum,
      squaresSum: squaresSum,
      lowerStatistics: lowerStatistics?.cast<double>(),
      upperStatistics: upperStatistics?.cast<double>(),
    ) as Statistics<T>;
  } else if (T == num) {
    if (nType == T) {
      return this as Statistics<T>;
    }

    return Statistics<num>(
      length,
      min,
      max,
      medianLow: medianLow,
      medianHigh: medianHigh,
      mean: mean,
      standardDeviation: standardDeviation,
      sum: sum,
      squaresSum: squaresSum,
      lowerStatistics: lowerStatistics?.cast<num>(),
      upperStatistics: upperStatistics?.cast<num>(),
    ) as Statistics<T>;
  } else {
    return this as Statistics<T>;
  }
}