code: function fillRange(value) {
    var start = value.split('~')[0];
    var end   = value.split('~')[1];
  
    var decimals = (start.split('.')[1] || '').length;
    var mult = Math.pow(10, decimals);
  
    var range = _.range(start * mult, end * mult + 1)
                    // round errors to required decimal precision
                    .map(function (val) {
                      return (val / mult).toFixed(decimals);
                    });
  
    var last = range[range.length - 1];
  
    // Stupid self check
    if (+end !== +last) {
      throw new Error(format('Range create error for %s: last value is %s', value, last));
    }
  
    // Now we have array of string samples. Add integers when possible.
    var result = [];
  
    range.forEach(function (val) {
      // push test data as String
      result.push(val);
      // push test data as Number if the same
      if (String(+val) === val) { result.push(+val); }
    });
  
    return result;
  }
docs: Create array of sample values for single range 5~16, 0.04~0.09. Both string & integer forms (when possible)