trend-steps

0.2.0 • Public • Published

trend-steps

reduces math series to a square curve of its trend steps

Reduce a math series to a square curve like

+3      _              |
+2     | |             |
+1    _| |            _|
 0 _ |   |__       __|
-1          |_    |
-2            |_  |
-3              |_|

Use it as an array reducer.

const toTrendSteps = require('trend-steps')
 
const input = [
  1.2, 1.4, 1.5, 1.6, 1.5, 1.4, 1.4, 1.2
]
 
const output = input.reduce(toTrendSteps(), [])

In this case output will be

[
  { value: 1.2, level: 0 },
  { value: 1.4, level: 2 },
  { value: 1.5, level: 3 },
  { value: 1.6, level: 4 },
  { value: 1.5, level: -1 },
  { value: 1.4, level: -2 },
  { value: 1.4, level: 0 },
  { value: 1.2, level: -2 }
]

Note that the minimum delta between two consecutive entries is 0.1, and it is used as unit. In fact starting from first to second element, the level is increased by 2 units.

It accepts an options parameter, which defaults to { tolerance: 0.001 }, where tolerance is the criteria used to compare floats to check if they are equal. For instance, to decrease tolerance, do

const output = input.reduce(toTrendSteps({ tolerance: 0.0001 }), [])

Readme

Keywords

Package Sidebar

Install

npm i trend-steps

Weekly Downloads

0

Version

0.2.0

License

MIT

Unpacked Size

5.24 kB

Total Files

5

Last publish

Collaborators

  • fibo