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 291636x 291636x 291636x 1x 1x 184437x 184437x 1x 1x 150645x 150645x 1x 1x 10056x 10056x 1x 1x 7887x 7887x 1x 1x 6444x 6444x 1x 1x 6603x 6603x 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);
  }
}