* Add and configure eslint-plugin-import * Fix the lint:ts npm command * Autofix + prettier all the files * Manually fix remaining files * Move jquery code in jest-setup to external file to safely reorder imports * Resolve issue caused by circular dependencies within Prometheus * Update .betterer.results * Fix missing // @ts-ignore * ignore iconBundle.ts * Fix missing // @ts-ignore
38 lines
825 B
TypeScript
38 lines
825 B
TypeScript
import { Field, FieldType } from '../types';
|
|
|
|
import { FunctionalVector } from './FunctionalVector';
|
|
|
|
/**
|
|
* IndexVector is a simple vector implementation that returns the index value
|
|
* for each element in the vector. It is functionally equivolant a vector backed
|
|
* by an array with values: `[0,1,2,...,length-1]`
|
|
*/
|
|
export class IndexVector extends FunctionalVector<number> {
|
|
constructor(private len: number) {
|
|
super();
|
|
}
|
|
|
|
get length() {
|
|
return this.len;
|
|
}
|
|
|
|
get(index: number): number {
|
|
return index;
|
|
}
|
|
|
|
/**
|
|
* Returns a field representing the range [0 ... length-1]
|
|
*/
|
|
static newField(len: number): Field<number> {
|
|
return {
|
|
name: '',
|
|
values: new IndexVector(len),
|
|
type: FieldType.number,
|
|
config: {
|
|
min: 0,
|
|
max: len - 1,
|
|
},
|
|
};
|
|
}
|
|
}
|