fintech-algorithms
Using a coding agent? Give it the skill: npx skills add IslamBaraka90/Fintech-Algorithms-Library What it does →

Missing, Infinite, Invalid, and Unsupported-State Policies

Install and import#

bash
npm install fintech-algorithms
ts
import { missingInfiniteInvalidAndUnsupportedStatePolicies } from "fintech-algorithms/foundations/statistical-computing-and-reproducibility/missing-infinite-invalid-and-unsupported-state-policies";

Signature#

missingInfiniteInvalidAndUnsupportedStatePolicies(input)

Screens a mixed raw list down to the entries that are genuinely finite numbers and reports how many were turned away.

Parameters#

NameTypeNotes
inputD00InputReads rawValues, the unscreened list which may hold nulls, strings or non-finite numbers, and invalidPolicy, a label describing what the caller intends to do about them. A non-empty values list of finite numbers must also be present; it is validated but not screened.

Returns#

D00Output

accepted holds the surviving finite numbers in their original order, rejectedCount how many were dropped, policy echoes invalidPolicy, and status is ok when anything survived and unsupported when nothing did.

Errors#

  • When values is absent, empty, or holds a non-finite number — throws RangeError

Complexity: time O(n), space O(n).

Worked example#

verified This is the worked example published in the article, replayed by the test suite on every run. The output cannot drift.

Input#

input
{
  "values": [1, 2, 3, 4, 5],
  "floatingValue": 0.1,
  "maxSafeMagnitude": 1.7976931348623157e+308,
  "window": 3,
  "rawValues": [1, null, 2, "bad", 3],
  "invalidPolicy": "drop-and-report",
  "seed": 42,
  "sampleCount": 5,
  "leftVector": [
    {
      "index": "A",
      "value": 1
    },
    {
      "index": "B",
      "value": 2
    }
  ],
  "rightVector": [
    {
      "index": "B",
      "value": 20
    },
    {
      "index": "C",
      "value": 30
    }
  ],
  "train": [10, 12, 14, 16],
  "test": [18, 20],
  "actual": [1, 2.0000001, 3],
  "expected": [1, 2, 3]
}

Showing 14 of 18 fields.

Call#

missingInfiniteInvalidAndUnsupportedStatePolicies(input)

Returns#

object with 2 fields: accepted, rejectedCount

{
  "accepted": [1, 2, 3],
  "rejectedCount": 2
}

Diagrams#

Missing, Infinite, Invalid, and Unsupported-State Policies — article hero
Missing, Infinite, Invalid, and Unsupported-State Policies — calculation ledger
Missing, Infinite, Invalid, and Unsupported-State Policies — concept anatomy
Missing, Infinite, Invalid, and Unsupported-State Policies — failure boundary
Missing, Infinite, Invalid, and Unsupported-State Policies — method map
Missing, Infinite, Invalid, and Unsupported-State Policies — scenario contrast

How it works#

This page states the contract — how to call it correctly. The article explains the concept: why it works, and where it breaks.

Read the article →

References#

The rest of the Statistical Computing and Reproducibility family#