function filter_range()

in src/filters.ts [44:72]


function filter_range(data: FilterRange): (dp: Datapoint) => boolean {
    if (data.type == ParamType.CATEGORICAL) {
        console.assert(typeof data.min == typeof data.max, data.min, data.max);
        return function(dp: Datapoint) {
            var value = dp[data.col];
            if (value === undefined) {
                return false;
            }
            value = convert_to_categorical_input(value);
            return data.min <= value && value <= data.max;
        }
    }
    return function(dp: Datapoint) {
        var value = dp[data.col];
        if (value === undefined) {
            return false;
        }
        value = parseFloat(value);
        if (data.min <= value && value <= data.max) {
            // Easy, in range
            return true;
        } else if (data.include_infnans) {
            // Not in `[min, max]`, but we also include inf and nans
            return Number.isNaN(value) || !Number.isFinite(value);
        } else {
            return false;
        }
    }
};