src/getNiceTickValues.js
function getNiceTickValuesFn([min, max], tickCount = 6, allowDecimals = true) {
  // More than two ticks should be return
  const count = Math.max(tickCount, 2);
  const [cormin, cormax] = getValidInterval([min, max]);

  if (cormin === -Infinity || cormax === Infinity) {
    const values = cormax === Infinity
      ? [cormin, ...range(0, tickCount - 1).map(() => Infinity)]
      : [...range(0, tickCount - 1).map(() => -Infinity), cormax];

    return min > max ? reverse(values) : values;
  }

  if (cormin === cormax) {
    return getTickOfSingleValue(cormin, tickCount, allowDecimals);
  }

  // Get the step between two ticks
  const { step, tickMin, tickMax } = calculateStep(cormin, cormax, count, allowDecimals);

  const values = Arithmetic.rangeStep(tickMin, tickMax.add(new Decimal(0.1).mul(step)), step);

  return min > max ? reverse(values) : values;
}
function getNiceTickValuesFn([min, max], tickCount = 6, allowDecimals = true) {
  // More than two ticks should be return
  const count = Math.max(tickCount, 2);
  const [cormin, cormax] = getValidInterval([min, max]);

  if (cormin === -Infinity || cormax === Infinity) {
    const values = cormax === Infinity
      ? [cormin, ...range(0, tickCount - 1).map(() => Infinity)]
      : [...range(0, tickCount - 1).map(() => -Infinity), cormax];

    return min > max ? reverse(values) : values;
  }

  if (cormin === cormax) {
    return getTickOfSingleValue(cormin, tickCount, allowDecimals);
  }

  // Get the step between two ticks
  const { step, tickMin, tickMax } = calculateStep(cormin, cormax, count, allowDecimals);

  const values = Arithmetic.rangeStep(tickMin, tickMax.add(new Decimal(0.1).mul(step)), step);

  return min > max ? reverse(values) : values;
}
function getNiceTickValuesFn ( [ min , max ] , tickCount = 6 , allowDecimals = true ) { // More than two ticks should be return const count = Math . max ( tickCount , 2 ) ; const [ cormin , cormax ] = getValidInterval ( [ min , max ] ) ; if ( cormin === - Infinity || cormax === Infinity ) { const values = cormax === Infinity ? [ cormin , ... range ( 0 , tickCount - 1 ) . map ( ( ) => Infinity ) ] : [ ... range ( 0 , tickCount - 1 ) . map ( ( ) => - Infinity ) , cormax ] ; return min > max ? reverse ( values ) : values ; } if ( cormin === cormax ) { return getTickOfSingleValue ( cormin , tickCount , allowDecimals ) ; } // Get the step between two ticks const { step , tickMin , tickMax } = calculateStep ( cormin , cormax , count , allowDecimals ) ; const values = Arithmetic . rangeStep ( tickMin , tickMax . add ( new Decimal ( 0.1 ) . mul ( step ) ) , step ) ; return min > max ? reverse ( values ) : values ; }
Calculate the ticks of an interval, the count of ticks will be guraranteed

@param  {Number}  min, max      min: The minimum value, max: The maximum value
@param  {Integer} tickCount     The count of ticks
@param  {Boolean} allowDecimals Allow the ticks to be decimals or not
@return {Array}   ticks
Calculate the ticks of an interval the count of ticks will be guraranteed