All files / src position.ts

100% Statements 34/34
100% Branches 13/13
100% Functions 7/7
100% Lines 34/34

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 361x 1x 1x 1x 1x 1x 272494x 272494x 272494x 1x 1x 180051x 180051x 1x 1x 154784x 154784x 1x 1x 9999x 9999x 1x 1x 7735x 7735x 1x 1x 6345x 6345x 1x 1x 6522x 6522x 1x    
// first position is (1,1)
export class Position {
  private readonly row: number;
  private readonly col: number;
 
  public constructor(row: number, col: number) {
    this.row = row;
    this.col = col;
  }
 
  public getCol(): number {
    return this.col;
  }
 
  public getRow(): number {
    return this.row;
  }
 
  public isAfter(p: Position): boolean {
    return this.row > p.row || (this.row === p.row && this.col >= p.col);
  }
 
  public equals(p: Position): boolean {
    return this.row === p.getRow() && this.col === p.getCol();
  }
 
  public isBefore(p: Position): boolean {
    return this.row < p.row || (this.row === p.row && this.col < p.col);
  }
 
  public isBetween(p1: Position, p2: Position): boolean {
    return this.isAfter(p1) && this.isBefore(p2);
  }
}