it('should translate to physical coordinates (as an array)', () => {
    const t = new RecordTranslator();

    spyOn(t, 'toPhysicalRow').and.returnValue(6);
    spyOn(t, 'toPhysicalColumn').and.returnValue(12);

    expect(t.toPhysical(3, 4)).toEqual([6, 12]);
  });
  it('should translate to physical coordinates (as an object)', () => {
    const t = new RecordTranslator();

    spyOn(t, 'toPhysicalRow').and.returnValue(6);
    spyOn(t, 'toPhysicalColumn').and.returnValue(12);

    expect(t.toPhysical({ row: 3, column: 4 })).toEqual({ row: 6, column: 12 });
  });
  it('should translate to physical column using hook system', () => {
    const hotMock = {
      runHooks: jasmine.createSpy().and.returnValue(54),
    };
    const t = new RecordTranslator(hotMock);

    expect(t.toPhysicalColumn(12)).toBe(54);
    expect(hotMock.runHooks).toHaveBeenCalledWith('modifyCol', 12);
  });
  it('should translate to visual row using hook system', () => {
    const hotMock = {
      runHooks: jasmine.createSpy().and.returnValue(54),
    };
    const t = new RecordTranslator(hotMock);

    expect(t.toVisualRow(12)).toBe(54);
    expect(hotMock.runHooks).toHaveBeenCalledWith('unmodifyRow', 12);
  });