import { nowHourIn } from "../src/index";
import * as TZ from "./constants/TZ";
import * as DATES from "./constants/DATES";

beforeEach(() => {
  expect(new Date(Date.now()).getFullYear()).toBeGreaterThanOrEqual(2022);
  jest.useFakeTimers();
});

afterEach(() => {
  jest.runOnlyPendingTimers();
  jest.useRealTimers();
  expect(new Date(Date.now()).getFullYear()).toBeGreaterThanOrEqual(2022);
});

test("now hour in IANATimeZone 1999_12_31_23_59", () => {
  jest.setSystemTime(new Date(DATES.DATE_1999_12_31_23_59));
  expect(nowHourIn(TZ.UTC_M11)).toEqual(12);
  expect(nowHourIn(TZ.UTC_M10)).toEqual(13);
  expect(nowHourIn(TZ.UTC_M930)).toEqual(14);
  expect(nowHourIn(TZ.UTC_M9)).toEqual(14);
  expect(nowHourIn(TZ.UTC_M8)).toEqual(15);
  expect(nowHourIn(TZ.UTC_M7)).toEqual(16);
  expect(nowHourIn(TZ.UTC_M6)).toEqual(17);
  expect(nowHourIn(TZ.UTC_M5)).toEqual(18);
  expect(nowHourIn(TZ.UTC_M4)).toEqual(19);
  expect(nowHourIn(TZ.UTC_M330)).toEqual(20);
  expect(nowHourIn(TZ.UTC_M3)).toEqual(20);
  expect(nowHourIn(TZ.UTC_M2)).toEqual(22);
  expect(nowHourIn(TZ.UTC_M1)).toEqual(22);
  expect(nowHourIn(TZ.UTC_0)).toEqual(23);
  expect(nowHourIn(TZ.UTC_P1)).toEqual(0);
  expect(nowHourIn(TZ.UTC_P2)).toEqual(1);
  expect(nowHourIn(TZ.UTC_P3)).toEqual(2);
  expect(nowHourIn(TZ.UTC_P330)).toEqual(3);
  expect(nowHourIn(TZ.UTC_P4)).toEqual(3);
  expect(nowHourIn(TZ.UTC_P430)).toEqual(4);
  expect(nowHourIn(TZ.UTC_P5)).toEqual(4);
  expect(nowHourIn(TZ.UTC_P530)).toEqual(5);
  expect(nowHourIn(TZ.UTC_P545)).toEqual(5);
  expect(nowHourIn(TZ.UTC_P6)).toEqual(5);
  expect(nowHourIn(TZ.UTC_P630)).toEqual(6);
  expect(nowHourIn(TZ.UTC_P7)).toEqual(6);
  expect(nowHourIn(TZ.UTC_P8)).toEqual(7);
  expect(nowHourIn(TZ.UTC_P845)).toEqual(8);
  expect(nowHourIn(TZ.UTC_P9)).toEqual(8);
  expect(nowHourIn(TZ.UTC_P930)).toEqual(10);
  expect(nowHourIn(TZ.UTC_P10)).toEqual(9);
  expect(nowHourIn(TZ.UTC_P1030)).toEqual(10);
  expect(nowHourIn(TZ.UTC_P11)).toEqual(11);
  expect(nowHourIn(TZ.UTC_P12)).toEqual(12);
  expect(nowHourIn(TZ.UTC_P1245)).toEqual(13);
  expect(nowHourIn(TZ.UTC_P13)).toEqual(13);
});

test("now hour in IANATimeZone 2000_01_01_00_00", () => {
  jest.setSystemTime(new Date(DATES.DATE_2000_01_01_00_00));
  expect(nowHourIn(TZ.UTC_M11)).toEqual(13);
  expect(nowHourIn(TZ.UTC_M10)).toEqual(14);
  expect(nowHourIn(TZ.UTC_M930)).toEqual(14);
  expect(nowHourIn(TZ.UTC_M9)).toEqual(15);
  expect(nowHourIn(TZ.UTC_M8)).toEqual(16);
  expect(nowHourIn(TZ.UTC_M7)).toEqual(17);
  expect(nowHourIn(TZ.UTC_M6)).toEqual(18);
  expect(nowHourIn(TZ.UTC_M5)).toEqual(19);
  expect(nowHourIn(TZ.UTC_M4)).toEqual(20);
  expect(nowHourIn(TZ.UTC_M330)).toEqual(20);
  expect(nowHourIn(TZ.UTC_M3)).toEqual(21);
  expect(nowHourIn(TZ.UTC_M2)).toEqual(23);
  expect(nowHourIn(TZ.UTC_M1)).toEqual(23);
  expect(nowHourIn(TZ.UTC_0)).toEqual(0);
  expect(nowHourIn(TZ.UTC_P1)).toEqual(1);
  expect(nowHourIn(TZ.UTC_P2)).toEqual(2);
  expect(nowHourIn(TZ.UTC_P3)).toEqual(3);
  expect(nowHourIn(TZ.UTC_P330)).toEqual(3);
  expect(nowHourIn(TZ.UTC_P4)).toEqual(4);
  expect(nowHourIn(TZ.UTC_P430)).toEqual(4);
  expect(nowHourIn(TZ.UTC_P5)).toEqual(5);
  expect(nowHourIn(TZ.UTC_P530)).toEqual(5);
  expect(nowHourIn(TZ.UTC_P545)).toEqual(5);
  expect(nowHourIn(TZ.UTC_P6)).toEqual(6);
  expect(nowHourIn(TZ.UTC_P630)).toEqual(6);
  expect(nowHourIn(TZ.UTC_P7)).toEqual(7);
  expect(nowHourIn(TZ.UTC_P8)).toEqual(8);
  expect(nowHourIn(TZ.UTC_P845)).toEqual(8);
  expect(nowHourIn(TZ.UTC_P9)).toEqual(9);
  expect(nowHourIn(TZ.UTC_P930)).toEqual(10);
  expect(nowHourIn(TZ.UTC_P10)).toEqual(10);
  expect(nowHourIn(TZ.UTC_P1030)).toEqual(11);
  expect(nowHourIn(TZ.UTC_P11)).toEqual(11);
  expect(nowHourIn(TZ.UTC_P12)).toEqual(13);
  expect(nowHourIn(TZ.UTC_P1245)).toEqual(13);
  expect(nowHourIn(TZ.UTC_P13)).toEqual(14);
});

test("now hour in IANATimeZone 2001_01_01_01_02", () => {
  jest.setSystemTime(new Date(DATES.DATE_2001_01_01_01_02));
  expect(nowHourIn(TZ.UTC_M11)).toEqual(14);
  expect(nowHourIn(TZ.UTC_M10)).toEqual(15);
  expect(nowHourIn(TZ.UTC_M930)).toEqual(15);
  expect(nowHourIn(TZ.UTC_M9)).toEqual(16);
  expect(nowHourIn(TZ.UTC_M8)).toEqual(17);
  expect(nowHourIn(TZ.UTC_M7)).toEqual(18);
  expect(nowHourIn(TZ.UTC_M6)).toEqual(19);
  expect(nowHourIn(TZ.UTC_M5)).toEqual(20);
  expect(nowHourIn(TZ.UTC_M4)).toEqual(21);
  expect(nowHourIn(TZ.UTC_M330)).toEqual(21);
  expect(nowHourIn(TZ.UTC_M3)).toEqual(22);
  expect(nowHourIn(TZ.UTC_M2)).toEqual(23);
  expect(nowHourIn(TZ.UTC_M1)).toEqual(0);
  expect(nowHourIn(TZ.UTC_0)).toEqual(1);
  expect(nowHourIn(TZ.UTC_P1)).toEqual(2);
  expect(nowHourIn(TZ.UTC_P2)).toEqual(3);
  expect(nowHourIn(TZ.UTC_P3)).toEqual(4);
  expect(nowHourIn(TZ.UTC_P330)).toEqual(4);
  expect(nowHourIn(TZ.UTC_P4)).toEqual(5);
  expect(nowHourIn(TZ.UTC_P430)).toEqual(5);
  expect(nowHourIn(TZ.UTC_P5)).toEqual(6);
  expect(nowHourIn(TZ.UTC_P530)).toEqual(6);
  expect(nowHourIn(TZ.UTC_P545)).toEqual(6);
  expect(nowHourIn(TZ.UTC_P6)).toEqual(7);
  expect(nowHourIn(TZ.UTC_P630)).toEqual(7);
  expect(nowHourIn(TZ.UTC_P7)).toEqual(8);
  expect(nowHourIn(TZ.UTC_P8)).toEqual(9);
  expect(nowHourIn(TZ.UTC_P845)).toEqual(9);
  expect(nowHourIn(TZ.UTC_P9)).toEqual(10);
  expect(nowHourIn(TZ.UTC_P930)).toEqual(11);
  expect(nowHourIn(TZ.UTC_P10)).toEqual(11);
  expect(nowHourIn(TZ.UTC_P1030)).toEqual(12);
  expect(nowHourIn(TZ.UTC_P11)).toEqual(12);
  expect(nowHourIn(TZ.UTC_P12)).toEqual(13);
  expect(nowHourIn(TZ.UTC_P1245)).toEqual(14);
  expect(nowHourIn(TZ.UTC_P13)).toEqual(15);
});

test("now hour in IANATimeZone 2002_02_02_02_04", () => {
  jest.setSystemTime(new Date(DATES.DATE_2002_02_02_02_04));
  expect(nowHourIn(TZ.UTC_M11)).toEqual(15);
  expect(nowHourIn(TZ.UTC_M10)).toEqual(16);
  expect(nowHourIn(TZ.UTC_M930)).toEqual(16);
  expect(nowHourIn(TZ.UTC_M9)).toEqual(17);
  expect(nowHourIn(TZ.UTC_M8)).toEqual(18);
  expect(nowHourIn(TZ.UTC_M7)).toEqual(19);
  expect(nowHourIn(TZ.UTC_M6)).toEqual(20);
  expect(nowHourIn(TZ.UTC_M5)).toEqual(21);
  expect(nowHourIn(TZ.UTC_M4)).toEqual(22);
  expect(nowHourIn(TZ.UTC_M330)).toEqual(22);
  expect(nowHourIn(TZ.UTC_M3)).toEqual(23);
  expect(nowHourIn(TZ.UTC_M2)).toEqual(1);
  expect(nowHourIn(TZ.UTC_M1)).toEqual(1);
  expect(nowHourIn(TZ.UTC_0)).toEqual(2);
  expect(nowHourIn(TZ.UTC_P1)).toEqual(3);
  expect(nowHourIn(TZ.UTC_P2)).toEqual(4);
  expect(nowHourIn(TZ.UTC_P3)).toEqual(5);
  expect(nowHourIn(TZ.UTC_P330)).toEqual(5);
  expect(nowHourIn(TZ.UTC_P4)).toEqual(6);
  expect(nowHourIn(TZ.UTC_P430)).toEqual(6);
  expect(nowHourIn(TZ.UTC_P5)).toEqual(7);
  expect(nowHourIn(TZ.UTC_P530)).toEqual(7);
  expect(nowHourIn(TZ.UTC_P545)).toEqual(7);
  expect(nowHourIn(TZ.UTC_P6)).toEqual(8);
  expect(nowHourIn(TZ.UTC_P630)).toEqual(8);
  expect(nowHourIn(TZ.UTC_P7)).toEqual(9);
  expect(nowHourIn(TZ.UTC_P8)).toEqual(10);
  expect(nowHourIn(TZ.UTC_P845)).toEqual(10);
  expect(nowHourIn(TZ.UTC_P9)).toEqual(11);
  expect(nowHourIn(TZ.UTC_P930)).toEqual(12);
  expect(nowHourIn(TZ.UTC_P10)).toEqual(12);
  expect(nowHourIn(TZ.UTC_P1030)).toEqual(13);
  expect(nowHourIn(TZ.UTC_P11)).toEqual(13);
  expect(nowHourIn(TZ.UTC_P12)).toEqual(14);
  expect(nowHourIn(TZ.UTC_P1245)).toEqual(15);
  expect(nowHourIn(TZ.UTC_P13)).toEqual(15);
});

test("now hour in IANATimeZone 2003_03_03_03_06", () => {
  jest.setSystemTime(new Date(DATES.DATE_2003_03_03_03_06));
  expect(nowHourIn(TZ.UTC_M11)).toEqual(16);
  expect(nowHourIn(TZ.UTC_M10)).toEqual(17);
  expect(nowHourIn(TZ.UTC_M930)).toEqual(17);
  expect(nowHourIn(TZ.UTC_M9)).toEqual(18);
  expect(nowHourIn(TZ.UTC_M8)).toEqual(19);
  expect(nowHourIn(TZ.UTC_M7)).toEqual(20);
  expect(nowHourIn(TZ.UTC_M6)).toEqual(21);
  expect(nowHourIn(TZ.UTC_M5)).toEqual(22);
  expect(nowHourIn(TZ.UTC_M4)).toEqual(23);
  expect(nowHourIn(TZ.UTC_M330)).toEqual(23);
  expect(nowHourIn(TZ.UTC_M3)).toEqual(0);
  expect(nowHourIn(TZ.UTC_M2)).toEqual(1);
  expect(nowHourIn(TZ.UTC_M1)).toEqual(2);
  expect(nowHourIn(TZ.UTC_0)).toEqual(3);
  expect(nowHourIn(TZ.UTC_P1)).toEqual(4);
  expect(nowHourIn(TZ.UTC_P2)).toEqual(5);
  expect(nowHourIn(TZ.UTC_P3)).toEqual(6);
  expect(nowHourIn(TZ.UTC_P330)).toEqual(6);
  expect(nowHourIn(TZ.UTC_P4)).toEqual(7);
  expect(nowHourIn(TZ.UTC_P430)).toEqual(7);
  expect(nowHourIn(TZ.UTC_P5)).toEqual(8);
  expect(nowHourIn(TZ.UTC_P530)).toEqual(8);
  expect(nowHourIn(TZ.UTC_P545)).toEqual(8);
  expect(nowHourIn(TZ.UTC_P6)).toEqual(9);
  expect(nowHourIn(TZ.UTC_P630)).toEqual(9);
  expect(nowHourIn(TZ.UTC_P7)).toEqual(10);
  expect(nowHourIn(TZ.UTC_P8)).toEqual(11);
  expect(nowHourIn(TZ.UTC_P845)).toEqual(11);
  expect(nowHourIn(TZ.UTC_P9)).toEqual(12);
  expect(nowHourIn(TZ.UTC_P930)).toEqual(13);
  expect(nowHourIn(TZ.UTC_P10)).toEqual(13);
  expect(nowHourIn(TZ.UTC_P1030)).toEqual(14);
  expect(nowHourIn(TZ.UTC_P11)).toEqual(14);
  expect(nowHourIn(TZ.UTC_P12)).toEqual(15);
  expect(nowHourIn(TZ.UTC_P1245)).toEqual(16);
  expect(nowHourIn(TZ.UTC_P13)).toEqual(16);
});

test("now hour in IANATimeZone 2004_04_04_04_08", () => {
  jest.setSystemTime(new Date(DATES.DATE_2004_04_04_04_08));
  expect(nowHourIn(TZ.UTC_M11)).toEqual(17);
  expect(nowHourIn(TZ.UTC_M10)).toEqual(18);
  expect(nowHourIn(TZ.UTC_M930)).toEqual(18);
  expect(nowHourIn(TZ.UTC_M9)).toEqual(19);
  expect(nowHourIn(TZ.UTC_M8)).toEqual(20);
  expect(nowHourIn(TZ.UTC_M7)).toEqual(21);
  expect(nowHourIn(TZ.UTC_M6)).toEqual(22);
  expect(nowHourIn(TZ.UTC_M5)).toEqual(0);
  expect(nowHourIn(TZ.UTC_M4)).toEqual(0);
  expect(nowHourIn(TZ.UTC_M330)).toEqual(1);
  expect(nowHourIn(TZ.UTC_M3)).toEqual(1);
  expect(nowHourIn(TZ.UTC_M2)).toEqual(2);
  expect(nowHourIn(TZ.UTC_M1)).toEqual(3);
  expect(nowHourIn(TZ.UTC_0)).toEqual(5);
  expect(nowHourIn(TZ.UTC_P1)).toEqual(5);
  expect(nowHourIn(TZ.UTC_P2)).toEqual(6);
  expect(nowHourIn(TZ.UTC_P3)).toEqual(8);
  expect(nowHourIn(TZ.UTC_P330)).toEqual(8);
  expect(nowHourIn(TZ.UTC_P4)).toEqual(8);
  expect(nowHourIn(TZ.UTC_P430)).toEqual(8);
  expect(nowHourIn(TZ.UTC_P5)).toEqual(9);
  expect(nowHourIn(TZ.UTC_P530)).toEqual(9);
  expect(nowHourIn(TZ.UTC_P545)).toEqual(9);
  expect(nowHourIn(TZ.UTC_P6)).toEqual(11);
  expect(nowHourIn(TZ.UTC_P630)).toEqual(10);
  expect(nowHourIn(TZ.UTC_P7)).toEqual(11);
  expect(nowHourIn(TZ.UTC_P8)).toEqual(12);
  expect(nowHourIn(TZ.UTC_P845)).toEqual(12);
  expect(nowHourIn(TZ.UTC_P9)).toEqual(13);
  expect(nowHourIn(TZ.UTC_P930)).toEqual(13);
  expect(nowHourIn(TZ.UTC_P10)).toEqual(15);
  expect(nowHourIn(TZ.UTC_P1030)).toEqual(14);
  expect(nowHourIn(TZ.UTC_P11)).toEqual(15);
  expect(nowHourIn(TZ.UTC_P12)).toEqual(16);
  expect(nowHourIn(TZ.UTC_P1245)).toEqual(16);
  expect(nowHourIn(TZ.UTC_P13)).toEqual(17);
});

test("now hour in IANATimeZone 2005_05_05_05_10", () => {
  jest.setSystemTime(new Date(DATES.DATE_2005_05_05_05_10));
  expect(nowHourIn(TZ.UTC_M11)).toEqual(18);
  expect(nowHourIn(TZ.UTC_M10)).toEqual(19);
  expect(nowHourIn(TZ.UTC_M930)).toEqual(19);
  expect(nowHourIn(TZ.UTC_M9)).toEqual(20);
  expect(nowHourIn(TZ.UTC_M8)).toEqual(22);
  expect(nowHourIn(TZ.UTC_M7)).toEqual(23);
  expect(nowHourIn(TZ.UTC_M6)).toEqual(23);
  expect(nowHourIn(TZ.UTC_M5)).toEqual(1);
  expect(nowHourIn(TZ.UTC_M4)).toEqual(1);
  expect(nowHourIn(TZ.UTC_M330)).toEqual(2);
  expect(nowHourIn(TZ.UTC_M3)).toEqual(2);
  expect(nowHourIn(TZ.UTC_M2)).toEqual(3);
  expect(nowHourIn(TZ.UTC_M1)).toEqual(4);
  expect(nowHourIn(TZ.UTC_0)).toEqual(6);
  expect(nowHourIn(TZ.UTC_P1)).toEqual(6);
  expect(nowHourIn(TZ.UTC_P2)).toEqual(8);
  expect(nowHourIn(TZ.UTC_P3)).toEqual(9);
  expect(nowHourIn(TZ.UTC_P330)).toEqual(9);
  expect(nowHourIn(TZ.UTC_P4)).toEqual(9);
  expect(nowHourIn(TZ.UTC_P430)).toEqual(9);
  expect(nowHourIn(TZ.UTC_P5)).toEqual(10);
  expect(nowHourIn(TZ.UTC_P530)).toEqual(10);
  expect(nowHourIn(TZ.UTC_P545)).toEqual(10);
  expect(nowHourIn(TZ.UTC_P6)).toEqual(12);
  expect(nowHourIn(TZ.UTC_P630)).toEqual(11);
  expect(nowHourIn(TZ.UTC_P7)).toEqual(12);
  expect(nowHourIn(TZ.UTC_P8)).toEqual(13);
  expect(nowHourIn(TZ.UTC_P845)).toEqual(13);
  expect(nowHourIn(TZ.UTC_P9)).toEqual(14);
  expect(nowHourIn(TZ.UTC_P930)).toEqual(14);
  expect(nowHourIn(TZ.UTC_P10)).toEqual(16);
  expect(nowHourIn(TZ.UTC_P1030)).toEqual(15);
  expect(nowHourIn(TZ.UTC_P11)).toEqual(16);
  expect(nowHourIn(TZ.UTC_P12)).toEqual(17);
  expect(nowHourIn(TZ.UTC_P1245)).toEqual(17);
  expect(nowHourIn(TZ.UTC_P13)).toEqual(18);
});

test("now hour in IANATimeZone 2006_06_06_06_12", () => {
  jest.setSystemTime(new Date(DATES.DATE_2006_06_06_06_12));
  expect(nowHourIn(TZ.UTC_M11)).toEqual(19);
  expect(nowHourIn(TZ.UTC_M10)).toEqual(20);
  expect(nowHourIn(TZ.UTC_M930)).toEqual(20);
  expect(nowHourIn(TZ.UTC_M9)).toEqual(21);
  expect(nowHourIn(TZ.UTC_M8)).toEqual(23);
  expect(nowHourIn(TZ.UTC_M7)).toEqual(0);
  expect(nowHourIn(TZ.UTC_M6)).toEqual(0);
  expect(nowHourIn(TZ.UTC_M5)).toEqual(2);
  expect(nowHourIn(TZ.UTC_M4)).toEqual(2);
  expect(nowHourIn(TZ.UTC_M330)).toEqual(3);
  expect(nowHourIn(TZ.UTC_M3)).toEqual(3);
  expect(nowHourIn(TZ.UTC_M2)).toEqual(4);
  expect(nowHourIn(TZ.UTC_M1)).toEqual(5);
  expect(nowHourIn(TZ.UTC_0)).toEqual(7);
  expect(nowHourIn(TZ.UTC_P1)).toEqual(7);
  expect(nowHourIn(TZ.UTC_P2)).toEqual(9);
  expect(nowHourIn(TZ.UTC_P3)).toEqual(10);
  expect(nowHourIn(TZ.UTC_P330)).toEqual(9);
  expect(nowHourIn(TZ.UTC_P4)).toEqual(10);
  expect(nowHourIn(TZ.UTC_P430)).toEqual(10);
  expect(nowHourIn(TZ.UTC_P5)).toEqual(11);
  expect(nowHourIn(TZ.UTC_P530)).toEqual(11);
  expect(nowHourIn(TZ.UTC_P545)).toEqual(11);
  expect(nowHourIn(TZ.UTC_P6)).toEqual(13);
  expect(nowHourIn(TZ.UTC_P630)).toEqual(12);
  expect(nowHourIn(TZ.UTC_P7)).toEqual(13);
  expect(nowHourIn(TZ.UTC_P8)).toEqual(14);
  expect(nowHourIn(TZ.UTC_P845)).toEqual(14);
  expect(nowHourIn(TZ.UTC_P9)).toEqual(15);
  expect(nowHourIn(TZ.UTC_P930)).toEqual(15);
  expect(nowHourIn(TZ.UTC_P10)).toEqual(17);
  expect(nowHourIn(TZ.UTC_P1030)).toEqual(16);
  expect(nowHourIn(TZ.UTC_P11)).toEqual(17);
  expect(nowHourIn(TZ.UTC_P12)).toEqual(18);
  expect(nowHourIn(TZ.UTC_P1245)).toEqual(18);
  expect(nowHourIn(TZ.UTC_P13)).toEqual(19);
});

test("now hour in IANATimeZone 2007_07_07_07_14", () => {
  jest.setSystemTime(new Date(DATES.DATE_2007_07_07_07_14));
  expect(nowHourIn(TZ.UTC_M11)).toEqual(20);
  expect(nowHourIn(TZ.UTC_M10)).toEqual(21);
  expect(nowHourIn(TZ.UTC_M930)).toEqual(21);
  expect(nowHourIn(TZ.UTC_M9)).toEqual(22);
  expect(nowHourIn(TZ.UTC_M8)).toEqual(0);
  expect(nowHourIn(TZ.UTC_M7)).toEqual(1);
  expect(nowHourIn(TZ.UTC_M6)).toEqual(1);
  expect(nowHourIn(TZ.UTC_M5)).toEqual(3);
  expect(nowHourIn(TZ.UTC_M4)).toEqual(3);
  expect(nowHourIn(TZ.UTC_M330)).toEqual(4);
  expect(nowHourIn(TZ.UTC_M3)).toEqual(4);
  expect(nowHourIn(TZ.UTC_M2)).toEqual(5);
  expect(nowHourIn(TZ.UTC_M1)).toEqual(6);
  expect(nowHourIn(TZ.UTC_0)).toEqual(8);
  expect(nowHourIn(TZ.UTC_P1)).toEqual(8);
  expect(nowHourIn(TZ.UTC_P2)).toEqual(10);
  expect(nowHourIn(TZ.UTC_P3)).toEqual(11);
  expect(nowHourIn(TZ.UTC_P330)).toEqual(10);
  expect(nowHourIn(TZ.UTC_P4)).toEqual(11);
  expect(nowHourIn(TZ.UTC_P430)).toEqual(11);
  expect(nowHourIn(TZ.UTC_P5)).toEqual(12);
  expect(nowHourIn(TZ.UTC_P530)).toEqual(12);
  expect(nowHourIn(TZ.UTC_P545)).toEqual(12);
  expect(nowHourIn(TZ.UTC_P6)).toEqual(14);
  expect(nowHourIn(TZ.UTC_P630)).toEqual(13);
  expect(nowHourIn(TZ.UTC_P7)).toEqual(14);
  expect(nowHourIn(TZ.UTC_P8)).toEqual(15);
  expect(nowHourIn(TZ.UTC_P845)).toEqual(15);
  expect(nowHourIn(TZ.UTC_P9)).toEqual(16);
  expect(nowHourIn(TZ.UTC_P930)).toEqual(16);
  expect(nowHourIn(TZ.UTC_P10)).toEqual(18);
  expect(nowHourIn(TZ.UTC_P1030)).toEqual(17);
  expect(nowHourIn(TZ.UTC_P11)).toEqual(18);
  expect(nowHourIn(TZ.UTC_P12)).toEqual(19);
  expect(nowHourIn(TZ.UTC_P1245)).toEqual(19);
  expect(nowHourIn(TZ.UTC_P13)).toEqual(20);
});

test("now hour in IANATimeZone 2008_08_08_08_16", () => {
  jest.setSystemTime(new Date(DATES.DATE_2008_08_08_08_16));
  expect(nowHourIn(TZ.UTC_M11)).toEqual(21);
  expect(nowHourIn(TZ.UTC_M10)).toEqual(22);
  expect(nowHourIn(TZ.UTC_M930)).toEqual(22);
  expect(nowHourIn(TZ.UTC_M9)).toEqual(23);
  expect(nowHourIn(TZ.UTC_M8)).toEqual(1);
  expect(nowHourIn(TZ.UTC_M7)).toEqual(2);
  expect(nowHourIn(TZ.UTC_M6)).toEqual(2);
  expect(nowHourIn(TZ.UTC_M5)).toEqual(4);
  expect(nowHourIn(TZ.UTC_M4)).toEqual(4);
  expect(nowHourIn(TZ.UTC_M330)).toEqual(5);
  expect(nowHourIn(TZ.UTC_M3)).toEqual(5);
  expect(nowHourIn(TZ.UTC_M2)).toEqual(6);
  expect(nowHourIn(TZ.UTC_M1)).toEqual(7);
  expect(nowHourIn(TZ.UTC_0)).toEqual(9);
  expect(nowHourIn(TZ.UTC_P1)).toEqual(9);
  expect(nowHourIn(TZ.UTC_P2)).toEqual(11);
  expect(nowHourIn(TZ.UTC_P3)).toEqual(11);
  expect(nowHourIn(TZ.UTC_P330)).toEqual(12);
  expect(nowHourIn(TZ.UTC_P4)).toEqual(12);
  expect(nowHourIn(TZ.UTC_P430)).toEqual(12);
  expect(nowHourIn(TZ.UTC_P5)).toEqual(13);
  expect(nowHourIn(TZ.UTC_P530)).toEqual(13);
  expect(nowHourIn(TZ.UTC_P545)).toEqual(14);
  expect(nowHourIn(TZ.UTC_P6)).toEqual(15);
  expect(nowHourIn(TZ.UTC_P630)).toEqual(14);
  expect(nowHourIn(TZ.UTC_P7)).toEqual(15);
  expect(nowHourIn(TZ.UTC_P8)).toEqual(16);
  expect(nowHourIn(TZ.UTC_P845)).toEqual(17);
  expect(nowHourIn(TZ.UTC_P9)).toEqual(17);
  expect(nowHourIn(TZ.UTC_P930)).toEqual(17);
  expect(nowHourIn(TZ.UTC_P10)).toEqual(19);
  expect(nowHourIn(TZ.UTC_P1030)).toEqual(18);
  expect(nowHourIn(TZ.UTC_P11)).toEqual(19);
  expect(nowHourIn(TZ.UTC_P12)).toEqual(20);
  expect(nowHourIn(TZ.UTC_P1245)).toEqual(21);
  expect(nowHourIn(TZ.UTC_P13)).toEqual(21);
});

test("now hour in IANATimeZone 2009_09_09_09_18", () => {
  jest.setSystemTime(new Date(DATES.DATE_2009_09_09_09_18));
  expect(nowHourIn(TZ.UTC_M11)).toEqual(22);
  expect(nowHourIn(TZ.UTC_M10)).toEqual(23);
  expect(nowHourIn(TZ.UTC_M930)).toEqual(23);
  expect(nowHourIn(TZ.UTC_M9)).toEqual(0);
  expect(nowHourIn(TZ.UTC_M8)).toEqual(2);
  expect(nowHourIn(TZ.UTC_M7)).toEqual(3);
  expect(nowHourIn(TZ.UTC_M6)).toEqual(3);
  expect(nowHourIn(TZ.UTC_M5)).toEqual(5);
  expect(nowHourIn(TZ.UTC_M4)).toEqual(5);
  expect(nowHourIn(TZ.UTC_M330)).toEqual(6);
  expect(nowHourIn(TZ.UTC_M3)).toEqual(6);
  expect(nowHourIn(TZ.UTC_M2)).toEqual(7);
  expect(nowHourIn(TZ.UTC_M1)).toEqual(8);
  expect(nowHourIn(TZ.UTC_0)).toEqual(10);
  expect(nowHourIn(TZ.UTC_P1)).toEqual(10);
  expect(nowHourIn(TZ.UTC_P2)).toEqual(11);
  expect(nowHourIn(TZ.UTC_P3)).toEqual(12);
  expect(nowHourIn(TZ.UTC_P330)).toEqual(13);
  expect(nowHourIn(TZ.UTC_P4)).toEqual(13);
  expect(nowHourIn(TZ.UTC_P430)).toEqual(13);
  expect(nowHourIn(TZ.UTC_P5)).toEqual(14);
  expect(nowHourIn(TZ.UTC_P530)).toEqual(14);
  expect(nowHourIn(TZ.UTC_P545)).toEqual(15);
  expect(nowHourIn(TZ.UTC_P6)).toEqual(16);
  expect(nowHourIn(TZ.UTC_P630)).toEqual(15);
  expect(nowHourIn(TZ.UTC_P7)).toEqual(16);
  expect(nowHourIn(TZ.UTC_P8)).toEqual(17);
  expect(nowHourIn(TZ.UTC_P845)).toEqual(18);
  expect(nowHourIn(TZ.UTC_P9)).toEqual(18);
  expect(nowHourIn(TZ.UTC_P930)).toEqual(18);
  expect(nowHourIn(TZ.UTC_P10)).toEqual(20);
  expect(nowHourIn(TZ.UTC_P1030)).toEqual(19);
  expect(nowHourIn(TZ.UTC_P11)).toEqual(20);
  expect(nowHourIn(TZ.UTC_P12)).toEqual(21);
  expect(nowHourIn(TZ.UTC_P1245)).toEqual(22);
  expect(nowHourIn(TZ.UTC_P13)).toEqual(22);
});

test("now hour in IANATimeZone 2010_10_10_10_20", () => {
  jest.setSystemTime(new Date(DATES.DATE_2010_10_10_10_20));
  expect(nowHourIn(TZ.UTC_M11)).toEqual(23);
  expect(nowHourIn(TZ.UTC_M10)).toEqual(0);
  expect(nowHourIn(TZ.UTC_M930)).toEqual(0);
  expect(nowHourIn(TZ.UTC_M9)).toEqual(1);
  expect(nowHourIn(TZ.UTC_M8)).toEqual(3);
  expect(nowHourIn(TZ.UTC_M7)).toEqual(4);
  expect(nowHourIn(TZ.UTC_M6)).toEqual(4);
  expect(nowHourIn(TZ.UTC_M5)).toEqual(6);
  expect(nowHourIn(TZ.UTC_M4)).toEqual(6);
  expect(nowHourIn(TZ.UTC_M330)).toEqual(7);
  expect(nowHourIn(TZ.UTC_M3)).toEqual(7);
  expect(nowHourIn(TZ.UTC_M2)).toEqual(8);
  expect(nowHourIn(TZ.UTC_M1)).toEqual(9);
  expect(nowHourIn(TZ.UTC_0)).toEqual(11);
  expect(nowHourIn(TZ.UTC_P1)).toEqual(11);
  expect(nowHourIn(TZ.UTC_P2)).toEqual(12);
  expect(nowHourIn(TZ.UTC_P3)).toEqual(13);
  expect(nowHourIn(TZ.UTC_P330)).toEqual(13);
  expect(nowHourIn(TZ.UTC_P4)).toEqual(14);
  expect(nowHourIn(TZ.UTC_P430)).toEqual(14);
  expect(nowHourIn(TZ.UTC_P5)).toEqual(15);
  expect(nowHourIn(TZ.UTC_P530)).toEqual(15);
  expect(nowHourIn(TZ.UTC_P545)).toEqual(16);
  expect(nowHourIn(TZ.UTC_P6)).toEqual(17);
  expect(nowHourIn(TZ.UTC_P630)).toEqual(16);
  expect(nowHourIn(TZ.UTC_P7)).toEqual(17);
  expect(nowHourIn(TZ.UTC_P8)).toEqual(18);
  expect(nowHourIn(TZ.UTC_P845)).toEqual(19);
  expect(nowHourIn(TZ.UTC_P9)).toEqual(19);
  expect(nowHourIn(TZ.UTC_P930)).toEqual(20);
  expect(nowHourIn(TZ.UTC_P10)).toEqual(21);
  expect(nowHourIn(TZ.UTC_P1030)).toEqual(21);
  expect(nowHourIn(TZ.UTC_P11)).toEqual(21);
  expect(nowHourIn(TZ.UTC_P12)).toEqual(22);
  expect(nowHourIn(TZ.UTC_P1245)).toEqual(0);
  expect(nowHourIn(TZ.UTC_P13)).toEqual(23);
});

test("now hour in IANATimeZone 2011_11_11_11_22", () => {
  jest.setSystemTime(new Date(DATES.DATE_2011_11_11_11_22));
  expect(nowHourIn(TZ.UTC_M11)).toEqual(0);
  expect(nowHourIn(TZ.UTC_M10)).toEqual(1);
  expect(nowHourIn(TZ.UTC_M930)).toEqual(1);
  expect(nowHourIn(TZ.UTC_M9)).toEqual(2);
  expect(nowHourIn(TZ.UTC_M8)).toEqual(3);
  expect(nowHourIn(TZ.UTC_M7)).toEqual(4);
  expect(nowHourIn(TZ.UTC_M6)).toEqual(5);
  expect(nowHourIn(TZ.UTC_M5)).toEqual(7);
  expect(nowHourIn(TZ.UTC_M4)).toEqual(7);
  expect(nowHourIn(TZ.UTC_M330)).toEqual(7);
  expect(nowHourIn(TZ.UTC_M3)).toEqual(8);
  expect(nowHourIn(TZ.UTC_M2)).toEqual(9);
  expect(nowHourIn(TZ.UTC_M1)).toEqual(10);
  expect(nowHourIn(TZ.UTC_0)).toEqual(11);
  expect(nowHourIn(TZ.UTC_P1)).toEqual(12);
  expect(nowHourIn(TZ.UTC_P2)).toEqual(13);
  expect(nowHourIn(TZ.UTC_P3)).toEqual(14);
  expect(nowHourIn(TZ.UTC_P330)).toEqual(14);
  expect(nowHourIn(TZ.UTC_P4)).toEqual(15);
  expect(nowHourIn(TZ.UTC_P430)).toEqual(15);
  expect(nowHourIn(TZ.UTC_P5)).toEqual(16);
  expect(nowHourIn(TZ.UTC_P530)).toEqual(16);
  expect(nowHourIn(TZ.UTC_P545)).toEqual(17);
  expect(nowHourIn(TZ.UTC_P6)).toEqual(18);
  expect(nowHourIn(TZ.UTC_P630)).toEqual(17);
  expect(nowHourIn(TZ.UTC_P7)).toEqual(18);
  expect(nowHourIn(TZ.UTC_P8)).toEqual(19);
  expect(nowHourIn(TZ.UTC_P845)).toEqual(20);
  expect(nowHourIn(TZ.UTC_P9)).toEqual(20);
  expect(nowHourIn(TZ.UTC_P930)).toEqual(21);
  expect(nowHourIn(TZ.UTC_P10)).toEqual(22);
  expect(nowHourIn(TZ.UTC_P1030)).toEqual(22);
  expect(nowHourIn(TZ.UTC_P11)).toEqual(22);
  expect(nowHourIn(TZ.UTC_P12)).toEqual(0);
  expect(nowHourIn(TZ.UTC_P1245)).toEqual(1);
  expect(nowHourIn(TZ.UTC_P13)).toEqual(0);
});

test("now hour in IANATimeZone 2012_12_12_12_24", () => {
  jest.setSystemTime(new Date(DATES.DATE_2012_12_12_12_24));
  expect(nowHourIn(TZ.UTC_M11)).toEqual(1);
  expect(nowHourIn(TZ.UTC_M10)).toEqual(2);
  expect(nowHourIn(TZ.UTC_M930)).toEqual(2);
  expect(nowHourIn(TZ.UTC_M9)).toEqual(3);
  expect(nowHourIn(TZ.UTC_M8)).toEqual(4);
  expect(nowHourIn(TZ.UTC_M7)).toEqual(5);
  expect(nowHourIn(TZ.UTC_M6)).toEqual(6);
  expect(nowHourIn(TZ.UTC_M5)).toEqual(7);
  expect(nowHourIn(TZ.UTC_M4)).toEqual(8);
  expect(nowHourIn(TZ.UTC_M330)).toEqual(8);
  expect(nowHourIn(TZ.UTC_M3)).toEqual(9);
  expect(nowHourIn(TZ.UTC_M2)).toEqual(10);
  expect(nowHourIn(TZ.UTC_M1)).toEqual(11);
  expect(nowHourIn(TZ.UTC_0)).toEqual(12);
  expect(nowHourIn(TZ.UTC_P1)).toEqual(13);
  expect(nowHourIn(TZ.UTC_P2)).toEqual(14);
  expect(nowHourIn(TZ.UTC_P3)).toEqual(15);
  expect(nowHourIn(TZ.UTC_P330)).toEqual(15);
  expect(nowHourIn(TZ.UTC_P4)).toEqual(16);
  expect(nowHourIn(TZ.UTC_P430)).toEqual(16);
  expect(nowHourIn(TZ.UTC_P5)).toEqual(17);
  expect(nowHourIn(TZ.UTC_P530)).toEqual(17);
  expect(nowHourIn(TZ.UTC_P545)).toEqual(18);
  expect(nowHourIn(TZ.UTC_P6)).toEqual(19);
  expect(nowHourIn(TZ.UTC_P630)).toEqual(18);
  expect(nowHourIn(TZ.UTC_P7)).toEqual(19);
  expect(nowHourIn(TZ.UTC_P8)).toEqual(20);
  expect(nowHourIn(TZ.UTC_P845)).toEqual(21);
  expect(nowHourIn(TZ.UTC_P9)).toEqual(21);
  expect(nowHourIn(TZ.UTC_P930)).toEqual(22);
  expect(nowHourIn(TZ.UTC_P10)).toEqual(23);
  expect(nowHourIn(TZ.UTC_P1030)).toEqual(23);
  expect(nowHourIn(TZ.UTC_P11)).toEqual(23);
  expect(nowHourIn(TZ.UTC_P12)).toEqual(1);
  expect(nowHourIn(TZ.UTC_P1245)).toEqual(2);
  expect(nowHourIn(TZ.UTC_P13)).toEqual(1);
});

test("now hour in IANATimeZone 2013_03_13_13_26", () => {
  jest.setSystemTime(new Date(DATES.DATE_2013_03_13_13_26));
  expect(nowHourIn(TZ.UTC_M11)).toEqual(2);
  expect(nowHourIn(TZ.UTC_M10)).toEqual(3);
  expect(nowHourIn(TZ.UTC_M930)).toEqual(3);
  expect(nowHourIn(TZ.UTC_M9)).toEqual(4);
  expect(nowHourIn(TZ.UTC_M8)).toEqual(6);
  expect(nowHourIn(TZ.UTC_M7)).toEqual(7);
  expect(nowHourIn(TZ.UTC_M6)).toEqual(7);
  expect(nowHourIn(TZ.UTC_M5)).toEqual(9);
  expect(nowHourIn(TZ.UTC_M4)).toEqual(9);
  expect(nowHourIn(TZ.UTC_M330)).toEqual(10);
  expect(nowHourIn(TZ.UTC_M3)).toEqual(10);
  expect(nowHourIn(TZ.UTC_M2)).toEqual(11);
  expect(nowHourIn(TZ.UTC_M1)).toEqual(12);
  expect(nowHourIn(TZ.UTC_0)).toEqual(13);
  expect(nowHourIn(TZ.UTC_P1)).toEqual(14);
  expect(nowHourIn(TZ.UTC_P2)).toEqual(15);
  expect(nowHourIn(TZ.UTC_P3)).toEqual(16);
  expect(nowHourIn(TZ.UTC_P330)).toEqual(16);
  expect(nowHourIn(TZ.UTC_P4)).toEqual(17);
  expect(nowHourIn(TZ.UTC_P430)).toEqual(17);
  expect(nowHourIn(TZ.UTC_P5)).toEqual(18);
  expect(nowHourIn(TZ.UTC_P530)).toEqual(18);
  expect(nowHourIn(TZ.UTC_P545)).toEqual(19);
  expect(nowHourIn(TZ.UTC_P6)).toEqual(20);
  expect(nowHourIn(TZ.UTC_P630)).toEqual(19);
  expect(nowHourIn(TZ.UTC_P7)).toEqual(20);
  expect(nowHourIn(TZ.UTC_P8)).toEqual(21);
  expect(nowHourIn(TZ.UTC_P845)).toEqual(22);
  expect(nowHourIn(TZ.UTC_P9)).toEqual(22);
  expect(nowHourIn(TZ.UTC_P930)).toEqual(23);
  expect(nowHourIn(TZ.UTC_P10)).toEqual(0);
  expect(nowHourIn(TZ.UTC_P1030)).toEqual(0);
  expect(nowHourIn(TZ.UTC_P11)).toEqual(0);
  expect(nowHourIn(TZ.UTC_P12)).toEqual(1);
  expect(nowHourIn(TZ.UTC_P1245)).toEqual(3);
  expect(nowHourIn(TZ.UTC_P13)).toEqual(2);
});

test("now hour in IANATimeZone 2014_04_14_14_28", () => {
  jest.setSystemTime(new Date(DATES.DATE_2014_04_14_14_28));
  expect(nowHourIn(TZ.UTC_M11)).toEqual(3);
  expect(nowHourIn(TZ.UTC_M10)).toEqual(4);
  expect(nowHourIn(TZ.UTC_M930)).toEqual(4);
  expect(nowHourIn(TZ.UTC_M9)).toEqual(5);
  expect(nowHourIn(TZ.UTC_M8)).toEqual(7);
  expect(nowHourIn(TZ.UTC_M7)).toEqual(8);
  expect(nowHourIn(TZ.UTC_M6)).toEqual(8);
  expect(nowHourIn(TZ.UTC_M5)).toEqual(10);
  expect(nowHourIn(TZ.UTC_M4)).toEqual(10);
  expect(nowHourIn(TZ.UTC_M330)).toEqual(11);
  expect(nowHourIn(TZ.UTC_M3)).toEqual(11);
  expect(nowHourIn(TZ.UTC_M2)).toEqual(12);
  expect(nowHourIn(TZ.UTC_M1)).toEqual(13);
  expect(nowHourIn(TZ.UTC_0)).toEqual(15);
  expect(nowHourIn(TZ.UTC_P1)).toEqual(15);
  expect(nowHourIn(TZ.UTC_P2)).toEqual(16);
  expect(nowHourIn(TZ.UTC_P3)).toEqual(17);
  expect(nowHourIn(TZ.UTC_P330)).toEqual(18);
  expect(nowHourIn(TZ.UTC_P4)).toEqual(18);
  expect(nowHourIn(TZ.UTC_P430)).toEqual(18);
  expect(nowHourIn(TZ.UTC_P5)).toEqual(19);
  expect(nowHourIn(TZ.UTC_P530)).toEqual(19);
  expect(nowHourIn(TZ.UTC_P545)).toEqual(20);
  expect(nowHourIn(TZ.UTC_P6)).toEqual(21);
  expect(nowHourIn(TZ.UTC_P630)).toEqual(20);
  expect(nowHourIn(TZ.UTC_P7)).toEqual(21);
  expect(nowHourIn(TZ.UTC_P8)).toEqual(22);
  expect(nowHourIn(TZ.UTC_P845)).toEqual(23);
  expect(nowHourIn(TZ.UTC_P9)).toEqual(23);
  expect(nowHourIn(TZ.UTC_P930)).toEqual(23);
  expect(nowHourIn(TZ.UTC_P10)).toEqual(1);
  expect(nowHourIn(TZ.UTC_P1030)).toEqual(0);
  expect(nowHourIn(TZ.UTC_P11)).toEqual(1);
  expect(nowHourIn(TZ.UTC_P12)).toEqual(2);
  expect(nowHourIn(TZ.UTC_P1245)).toEqual(3);
  expect(nowHourIn(TZ.UTC_P13)).toEqual(3);
});

test("now hour in IANATimeZone 2015_05_15_15_30", () => {
  jest.setSystemTime(new Date(DATES.DATE_2015_05_15_15_30));
  expect(nowHourIn(TZ.UTC_M11)).toEqual(4);
  expect(nowHourIn(TZ.UTC_M10)).toEqual(5);
  expect(nowHourIn(TZ.UTC_M930)).toEqual(6);
  expect(nowHourIn(TZ.UTC_M9)).toEqual(6);
  expect(nowHourIn(TZ.UTC_M8)).toEqual(8);
  expect(nowHourIn(TZ.UTC_M7)).toEqual(9);
  expect(nowHourIn(TZ.UTC_M6)).toEqual(9);
  expect(nowHourIn(TZ.UTC_M5)).toEqual(11);
  expect(nowHourIn(TZ.UTC_M4)).toEqual(11);
  expect(nowHourIn(TZ.UTC_M330)).toEqual(13);
  expect(nowHourIn(TZ.UTC_M3)).toEqual(12);
  expect(nowHourIn(TZ.UTC_M2)).toEqual(13);
  expect(nowHourIn(TZ.UTC_M1)).toEqual(14);
  expect(nowHourIn(TZ.UTC_0)).toEqual(16);
  expect(nowHourIn(TZ.UTC_P1)).toEqual(16);
  expect(nowHourIn(TZ.UTC_P2)).toEqual(17);
  expect(nowHourIn(TZ.UTC_P3)).toEqual(18);
  expect(nowHourIn(TZ.UTC_P330)).toEqual(20);
  expect(nowHourIn(TZ.UTC_P4)).toEqual(19);
  expect(nowHourIn(TZ.UTC_P430)).toEqual(20);
  expect(nowHourIn(TZ.UTC_P5)).toEqual(20);
  expect(nowHourIn(TZ.UTC_P530)).toEqual(21);
  expect(nowHourIn(TZ.UTC_P545)).toEqual(21);
  expect(nowHourIn(TZ.UTC_P6)).toEqual(21);
  expect(nowHourIn(TZ.UTC_P630)).toEqual(22);
  expect(nowHourIn(TZ.UTC_P7)).toEqual(22);
  expect(nowHourIn(TZ.UTC_P8)).toEqual(23);
  expect(nowHourIn(TZ.UTC_P845)).toEqual(0);
  expect(nowHourIn(TZ.UTC_P9)).toEqual(0);
  expect(nowHourIn(TZ.UTC_P930)).toEqual(1);
  expect(nowHourIn(TZ.UTC_P10)).toEqual(1);
  expect(nowHourIn(TZ.UTC_P1030)).toEqual(2);
  expect(nowHourIn(TZ.UTC_P11)).toEqual(3);
  expect(nowHourIn(TZ.UTC_P12)).toEqual(3);
  expect(nowHourIn(TZ.UTC_P1245)).toEqual(4);
  expect(nowHourIn(TZ.UTC_P13)).toEqual(4);
});

test("now hour in IANATimeZone 2016_06_16_16_32", () => {
  jest.setSystemTime(new Date(DATES.DATE_2016_06_16_16_32));
  expect(nowHourIn(TZ.UTC_M11)).toEqual(5);
  expect(nowHourIn(TZ.UTC_M10)).toEqual(6);
  expect(nowHourIn(TZ.UTC_M930)).toEqual(7);
  expect(nowHourIn(TZ.UTC_M9)).toEqual(7);
  expect(nowHourIn(TZ.UTC_M8)).toEqual(9);
  expect(nowHourIn(TZ.UTC_M7)).toEqual(10);
  expect(nowHourIn(TZ.UTC_M6)).toEqual(10);
  expect(nowHourIn(TZ.UTC_M5)).toEqual(12);
  expect(nowHourIn(TZ.UTC_M4)).toEqual(12);
  expect(nowHourIn(TZ.UTC_M330)).toEqual(14);
  expect(nowHourIn(TZ.UTC_M3)).toEqual(13);
  expect(nowHourIn(TZ.UTC_M2)).toEqual(14);
  expect(nowHourIn(TZ.UTC_M1)).toEqual(15);
  expect(nowHourIn(TZ.UTC_0)).toEqual(17);
  expect(nowHourIn(TZ.UTC_P1)).toEqual(17);
  expect(nowHourIn(TZ.UTC_P2)).toEqual(18);
  expect(nowHourIn(TZ.UTC_P3)).toEqual(19);
  expect(nowHourIn(TZ.UTC_P330)).toEqual(21);
  expect(nowHourIn(TZ.UTC_P4)).toEqual(20);
  expect(nowHourIn(TZ.UTC_P430)).toEqual(21);
  expect(nowHourIn(TZ.UTC_P5)).toEqual(21);
  expect(nowHourIn(TZ.UTC_P530)).toEqual(22);
  expect(nowHourIn(TZ.UTC_P545)).toEqual(22);
  expect(nowHourIn(TZ.UTC_P6)).toEqual(22);
  expect(nowHourIn(TZ.UTC_P630)).toEqual(23);
  expect(nowHourIn(TZ.UTC_P7)).toEqual(23);
  expect(nowHourIn(TZ.UTC_P8)).toEqual(0);
  expect(nowHourIn(TZ.UTC_P845)).toEqual(1);
  expect(nowHourIn(TZ.UTC_P9)).toEqual(1);
  expect(nowHourIn(TZ.UTC_P930)).toEqual(2);
  expect(nowHourIn(TZ.UTC_P10)).toEqual(2);
  expect(nowHourIn(TZ.UTC_P1030)).toEqual(3);
  expect(nowHourIn(TZ.UTC_P11)).toEqual(3);
  expect(nowHourIn(TZ.UTC_P12)).toEqual(4);
  expect(nowHourIn(TZ.UTC_P1245)).toEqual(5);
  expect(nowHourIn(TZ.UTC_P13)).toEqual(5);
});

test("now hour in IANATimeZone 2017_07_17_17_34", () => {
  jest.setSystemTime(new Date(DATES.DATE_2017_07_17_17_34));
  expect(nowHourIn(TZ.UTC_M11)).toEqual(6);
  expect(nowHourIn(TZ.UTC_M10)).toEqual(7);
  expect(nowHourIn(TZ.UTC_M930)).toEqual(8);
  expect(nowHourIn(TZ.UTC_M9)).toEqual(8);
  expect(nowHourIn(TZ.UTC_M8)).toEqual(10);
  expect(nowHourIn(TZ.UTC_M7)).toEqual(11);
  expect(nowHourIn(TZ.UTC_M6)).toEqual(11);
  expect(nowHourIn(TZ.UTC_M5)).toEqual(13);
  expect(nowHourIn(TZ.UTC_M4)).toEqual(13);
  expect(nowHourIn(TZ.UTC_M330)).toEqual(15);
  expect(nowHourIn(TZ.UTC_M3)).toEqual(14);
  expect(nowHourIn(TZ.UTC_M2)).toEqual(15);
  expect(nowHourIn(TZ.UTC_M1)).toEqual(16);
  expect(nowHourIn(TZ.UTC_0)).toEqual(18);
  expect(nowHourIn(TZ.UTC_P1)).toEqual(18);
  expect(nowHourIn(TZ.UTC_P2)).toEqual(19);
  expect(nowHourIn(TZ.UTC_P3)).toEqual(20);
  expect(nowHourIn(TZ.UTC_P330)).toEqual(22);
  expect(nowHourIn(TZ.UTC_P4)).toEqual(21);
  expect(nowHourIn(TZ.UTC_P430)).toEqual(22);
  expect(nowHourIn(TZ.UTC_P5)).toEqual(22);
  expect(nowHourIn(TZ.UTC_P530)).toEqual(23);
  expect(nowHourIn(TZ.UTC_P545)).toEqual(23);
  expect(nowHourIn(TZ.UTC_P6)).toEqual(23);
  expect(nowHourIn(TZ.UTC_P630)).toEqual(0);
  expect(nowHourIn(TZ.UTC_P7)).toEqual(0);
  expect(nowHourIn(TZ.UTC_P8)).toEqual(1);
  expect(nowHourIn(TZ.UTC_P845)).toEqual(2);
  expect(nowHourIn(TZ.UTC_P9)).toEqual(2);
  expect(nowHourIn(TZ.UTC_P930)).toEqual(3);
  expect(nowHourIn(TZ.UTC_P10)).toEqual(3);
  expect(nowHourIn(TZ.UTC_P1030)).toEqual(4);
  expect(nowHourIn(TZ.UTC_P11)).toEqual(4);
  expect(nowHourIn(TZ.UTC_P12)).toEqual(5);
  expect(nowHourIn(TZ.UTC_P1245)).toEqual(6);
  expect(nowHourIn(TZ.UTC_P13)).toEqual(6);
});

test("now hour in IANATimeZone 2018_08_18_18_36", () => {
  jest.setSystemTime(new Date(DATES.DATE_2018_08_18_18_36));
  expect(nowHourIn(TZ.UTC_M11)).toEqual(7);
  expect(nowHourIn(TZ.UTC_M10)).toEqual(8);
  expect(nowHourIn(TZ.UTC_M930)).toEqual(9);
  expect(nowHourIn(TZ.UTC_M9)).toEqual(9);
  expect(nowHourIn(TZ.UTC_M8)).toEqual(11);
  expect(nowHourIn(TZ.UTC_M7)).toEqual(12);
  expect(nowHourIn(TZ.UTC_M6)).toEqual(12);
  expect(nowHourIn(TZ.UTC_M5)).toEqual(14);
  expect(nowHourIn(TZ.UTC_M4)).toEqual(14);
  expect(nowHourIn(TZ.UTC_M330)).toEqual(16);
  expect(nowHourIn(TZ.UTC_M3)).toEqual(15);
  expect(nowHourIn(TZ.UTC_M2)).toEqual(16);
  expect(nowHourIn(TZ.UTC_M1)).toEqual(17);
  expect(nowHourIn(TZ.UTC_0)).toEqual(19);
  expect(nowHourIn(TZ.UTC_P1)).toEqual(19);
  expect(nowHourIn(TZ.UTC_P2)).toEqual(20);
  expect(nowHourIn(TZ.UTC_P3)).toEqual(21);
  expect(nowHourIn(TZ.UTC_P330)).toEqual(23);
  expect(nowHourIn(TZ.UTC_P4)).toEqual(22);
  expect(nowHourIn(TZ.UTC_P430)).toEqual(23);
  expect(nowHourIn(TZ.UTC_P5)).toEqual(23);
  expect(nowHourIn(TZ.UTC_P530)).toEqual(0);
  expect(nowHourIn(TZ.UTC_P545)).toEqual(0);
  expect(nowHourIn(TZ.UTC_P6)).toEqual(0);
  expect(nowHourIn(TZ.UTC_P630)).toEqual(1);
  expect(nowHourIn(TZ.UTC_P7)).toEqual(1);
  expect(nowHourIn(TZ.UTC_P8)).toEqual(2);
  expect(nowHourIn(TZ.UTC_P845)).toEqual(3);
  expect(nowHourIn(TZ.UTC_P9)).toEqual(3);
  expect(nowHourIn(TZ.UTC_P930)).toEqual(4);
  expect(nowHourIn(TZ.UTC_P10)).toEqual(4);
  expect(nowHourIn(TZ.UTC_P1030)).toEqual(5);
  expect(nowHourIn(TZ.UTC_P11)).toEqual(5);
  expect(nowHourIn(TZ.UTC_P12)).toEqual(6);
  expect(nowHourIn(TZ.UTC_P1245)).toEqual(7);
  expect(nowHourIn(TZ.UTC_P13)).toEqual(7);
});

test("now hour in IANATimeZone 2019_09_19_19_38", () => {
  jest.setSystemTime(new Date(DATES.DATE_2019_09_19_19_38));
  expect(nowHourIn(TZ.UTC_M11)).toEqual(8);
  expect(nowHourIn(TZ.UTC_M10)).toEqual(9);
  expect(nowHourIn(TZ.UTC_M930)).toEqual(10);
  expect(nowHourIn(TZ.UTC_M9)).toEqual(10);
  expect(nowHourIn(TZ.UTC_M8)).toEqual(12);
  expect(nowHourIn(TZ.UTC_M7)).toEqual(13);
  expect(nowHourIn(TZ.UTC_M6)).toEqual(13);
  expect(nowHourIn(TZ.UTC_M5)).toEqual(15);
  expect(nowHourIn(TZ.UTC_M4)).toEqual(15);
  expect(nowHourIn(TZ.UTC_M330)).toEqual(17);
  expect(nowHourIn(TZ.UTC_M3)).toEqual(16);
  expect(nowHourIn(TZ.UTC_M2)).toEqual(17);
  expect(nowHourIn(TZ.UTC_M1)).toEqual(18);
  expect(nowHourIn(TZ.UTC_0)).toEqual(20);
  expect(nowHourIn(TZ.UTC_P1)).toEqual(20);
  expect(nowHourIn(TZ.UTC_P2)).toEqual(21);
  expect(nowHourIn(TZ.UTC_P3)).toEqual(22);
  expect(nowHourIn(TZ.UTC_P330)).toEqual(0);
  expect(nowHourIn(TZ.UTC_P4)).toEqual(23);
  expect(nowHourIn(TZ.UTC_P430)).toEqual(0);
  expect(nowHourIn(TZ.UTC_P5)).toEqual(0);
  expect(nowHourIn(TZ.UTC_P530)).toEqual(1);
  expect(nowHourIn(TZ.UTC_P545)).toEqual(1);
  expect(nowHourIn(TZ.UTC_P6)).toEqual(1);
  expect(nowHourIn(TZ.UTC_P630)).toEqual(2);
  expect(nowHourIn(TZ.UTC_P7)).toEqual(2);
  expect(nowHourIn(TZ.UTC_P8)).toEqual(3);
  expect(nowHourIn(TZ.UTC_P845)).toEqual(4);
  expect(nowHourIn(TZ.UTC_P9)).toEqual(4);
  expect(nowHourIn(TZ.UTC_P930)).toEqual(5);
  expect(nowHourIn(TZ.UTC_P10)).toEqual(5);
  expect(nowHourIn(TZ.UTC_P1030)).toEqual(6);
  expect(nowHourIn(TZ.UTC_P11)).toEqual(6);
  expect(nowHourIn(TZ.UTC_P12)).toEqual(7);
  expect(nowHourIn(TZ.UTC_P1245)).toEqual(8);
  expect(nowHourIn(TZ.UTC_P13)).toEqual(8);
});

test("now hour in IANATimeZone 2020_02_20_20_40", () => {
  jest.setSystemTime(new Date(DATES.DATE_2020_02_20_20_40));
  expect(nowHourIn(TZ.UTC_M11)).toEqual(9);
  expect(nowHourIn(TZ.UTC_M10)).toEqual(10);
  expect(nowHourIn(TZ.UTC_M930)).toEqual(11);
  expect(nowHourIn(TZ.UTC_M9)).toEqual(11);
  expect(nowHourIn(TZ.UTC_M8)).toEqual(12);
  expect(nowHourIn(TZ.UTC_M7)).toEqual(13);
  expect(nowHourIn(TZ.UTC_M6)).toEqual(14);
  expect(nowHourIn(TZ.UTC_M5)).toEqual(15);
  expect(nowHourIn(TZ.UTC_M4)).toEqual(16);
  expect(nowHourIn(TZ.UTC_M330)).toEqual(17);
  expect(nowHourIn(TZ.UTC_M3)).toEqual(17);
  expect(nowHourIn(TZ.UTC_M2)).toEqual(18);
  expect(nowHourIn(TZ.UTC_M1)).toEqual(19);
  expect(nowHourIn(TZ.UTC_0)).toEqual(20);
  expect(nowHourIn(TZ.UTC_P1)).toEqual(21);
  expect(nowHourIn(TZ.UTC_P2)).toEqual(22);
  expect(nowHourIn(TZ.UTC_P3)).toEqual(23);
  expect(nowHourIn(TZ.UTC_P330)).toEqual(0);
  expect(nowHourIn(TZ.UTC_P4)).toEqual(0);
  expect(nowHourIn(TZ.UTC_P430)).toEqual(1);
  expect(nowHourIn(TZ.UTC_P5)).toEqual(1);
  expect(nowHourIn(TZ.UTC_P530)).toEqual(2);
  expect(nowHourIn(TZ.UTC_P545)).toEqual(2);
  expect(nowHourIn(TZ.UTC_P6)).toEqual(2);
  expect(nowHourIn(TZ.UTC_P630)).toEqual(3);
  expect(nowHourIn(TZ.UTC_P7)).toEqual(3);
  expect(nowHourIn(TZ.UTC_P8)).toEqual(4);
  expect(nowHourIn(TZ.UTC_P845)).toEqual(5);
  expect(nowHourIn(TZ.UTC_P9)).toEqual(5);
  expect(nowHourIn(TZ.UTC_P930)).toEqual(7);
  expect(nowHourIn(TZ.UTC_P10)).toEqual(6);
  expect(nowHourIn(TZ.UTC_P1030)).toEqual(7);
  expect(nowHourIn(TZ.UTC_P11)).toEqual(8);
  expect(nowHourIn(TZ.UTC_P12)).toEqual(8);
  expect(nowHourIn(TZ.UTC_P1245)).toEqual(10);
  expect(nowHourIn(TZ.UTC_P13)).toEqual(9);
});

test("now hour in IANATimeZone 2021_01_21_21_42", () => {
  jest.setSystemTime(new Date(DATES.DATE_2021_01_21_21_42));
  expect(nowHourIn(TZ.UTC_M11)).toEqual(10);
  expect(nowHourIn(TZ.UTC_M10)).toEqual(11);
  expect(nowHourIn(TZ.UTC_M930)).toEqual(12);
  expect(nowHourIn(TZ.UTC_M9)).toEqual(12);
  expect(nowHourIn(TZ.UTC_M8)).toEqual(13);
  expect(nowHourIn(TZ.UTC_M7)).toEqual(14);
  expect(nowHourIn(TZ.UTC_M6)).toEqual(15);
  expect(nowHourIn(TZ.UTC_M5)).toEqual(16);
  expect(nowHourIn(TZ.UTC_M4)).toEqual(17);
  expect(nowHourIn(TZ.UTC_M330)).toEqual(18);
  expect(nowHourIn(TZ.UTC_M3)).toEqual(18);
  expect(nowHourIn(TZ.UTC_M2)).toEqual(19);
  expect(nowHourIn(TZ.UTC_M1)).toEqual(20);
  expect(nowHourIn(TZ.UTC_0)).toEqual(21);
  expect(nowHourIn(TZ.UTC_P1)).toEqual(22);
  expect(nowHourIn(TZ.UTC_P2)).toEqual(23);
  expect(nowHourIn(TZ.UTC_P3)).toEqual(0);
  expect(nowHourIn(TZ.UTC_P330)).toEqual(1);
  expect(nowHourIn(TZ.UTC_P4)).toEqual(1);
  expect(nowHourIn(TZ.UTC_P430)).toEqual(2);
  expect(nowHourIn(TZ.UTC_P5)).toEqual(2);
  expect(nowHourIn(TZ.UTC_P530)).toEqual(3);
  expect(nowHourIn(TZ.UTC_P545)).toEqual(3);
  expect(nowHourIn(TZ.UTC_P6)).toEqual(3);
  expect(nowHourIn(TZ.UTC_P630)).toEqual(4);
  expect(nowHourIn(TZ.UTC_P7)).toEqual(4);
  expect(nowHourIn(TZ.UTC_P8)).toEqual(5);
  expect(nowHourIn(TZ.UTC_P845)).toEqual(6);
  expect(nowHourIn(TZ.UTC_P9)).toEqual(6);
  expect(nowHourIn(TZ.UTC_P930)).toEqual(8);
  expect(nowHourIn(TZ.UTC_P10)).toEqual(7);
  expect(nowHourIn(TZ.UTC_P1030)).toEqual(8);
  expect(nowHourIn(TZ.UTC_P11)).toEqual(9);
  expect(nowHourIn(TZ.UTC_P12)).toEqual(9);
  expect(nowHourIn(TZ.UTC_P1245)).toEqual(11);
  expect(nowHourIn(TZ.UTC_P13)).toEqual(10);
});

test("now hour in IANATimeZone 2022_02_22_22_44", () => {
  jest.setSystemTime(new Date(DATES.DATE_2022_02_22_22_44));
  expect(nowHourIn(TZ.UTC_M11)).toEqual(11);
  expect(nowHourIn(TZ.UTC_M10)).toEqual(12);
  expect(nowHourIn(TZ.UTC_M930)).toEqual(13);
  expect(nowHourIn(TZ.UTC_M9)).toEqual(13);
  expect(nowHourIn(TZ.UTC_M8)).toEqual(14);
  expect(nowHourIn(TZ.UTC_M7)).toEqual(15);
  expect(nowHourIn(TZ.UTC_M6)).toEqual(16);
  expect(nowHourIn(TZ.UTC_M5)).toEqual(17);
  expect(nowHourIn(TZ.UTC_M4)).toEqual(18);
  expect(nowHourIn(TZ.UTC_M330)).toEqual(19);
  expect(nowHourIn(TZ.UTC_M3)).toEqual(19);
  expect(nowHourIn(TZ.UTC_M2)).toEqual(20);
  expect(nowHourIn(TZ.UTC_M1)).toEqual(21);
  expect(nowHourIn(TZ.UTC_0)).toEqual(22);
  expect(nowHourIn(TZ.UTC_P1)).toEqual(23);
  expect(nowHourIn(TZ.UTC_P2)).toEqual(0);
  expect(nowHourIn(TZ.UTC_P3)).toEqual(1);
  expect(nowHourIn(TZ.UTC_P330)).toEqual(2);
  expect(nowHourIn(TZ.UTC_P4)).toEqual(2);
  expect(nowHourIn(TZ.UTC_P430)).toEqual(3);
  expect(nowHourIn(TZ.UTC_P5)).toEqual(3);
  expect(nowHourIn(TZ.UTC_P530)).toEqual(4);
  expect(nowHourIn(TZ.UTC_P545)).toEqual(4);
  expect(nowHourIn(TZ.UTC_P6)).toEqual(4);
  expect(nowHourIn(TZ.UTC_P630)).toEqual(5);
  expect(nowHourIn(TZ.UTC_P7)).toEqual(5);
  expect(nowHourIn(TZ.UTC_P8)).toEqual(6);
  expect(nowHourIn(TZ.UTC_P845)).toEqual(7);
  expect(nowHourIn(TZ.UTC_P9)).toEqual(7);
  expect(nowHourIn(TZ.UTC_P930)).toEqual(9);
  expect(nowHourIn(TZ.UTC_P10)).toEqual(8);
  expect(nowHourIn(TZ.UTC_P1030)).toEqual(9);
  expect(nowHourIn(TZ.UTC_P11)).toEqual(10);
  expect(nowHourIn(TZ.UTC_P12)).toEqual(10);
  expect(nowHourIn(TZ.UTC_P1245)).toEqual(12);
  expect(nowHourIn(TZ.UTC_P13)).toEqual(11);
});

test("now hour in IANATimeZone 2023_03_23_23_46", () => {
  jest.setSystemTime(new Date(DATES.DATE_2023_03_23_23_46));
  expect(nowHourIn(TZ.UTC_M11)).toEqual(12);
  expect(nowHourIn(TZ.UTC_M10)).toEqual(13);
  expect(nowHourIn(TZ.UTC_M930)).toEqual(14);
  expect(nowHourIn(TZ.UTC_M9)).toEqual(14);
  expect(nowHourIn(TZ.UTC_M8)).toEqual(16);
  expect(nowHourIn(TZ.UTC_M7)).toEqual(17);
  expect(nowHourIn(TZ.UTC_M6)).toEqual(17);
  expect(nowHourIn(TZ.UTC_M5)).toEqual(19);
  expect(nowHourIn(TZ.UTC_M4)).toEqual(19);
  expect(nowHourIn(TZ.UTC_M330)).toEqual(21);
  expect(nowHourIn(TZ.UTC_M3)).toEqual(20);
  expect(nowHourIn(TZ.UTC_M2)).toEqual(21);
  expect(nowHourIn(TZ.UTC_M1)).toEqual(22);
  expect(nowHourIn(TZ.UTC_0)).toEqual(23);
  expect(nowHourIn(TZ.UTC_P1)).toEqual(0);
  expect(nowHourIn(TZ.UTC_P2)).toEqual(1);
  expect(nowHourIn(TZ.UTC_P3)).toEqual(2);
  expect(nowHourIn(TZ.UTC_P330)).toEqual(4);
  expect(nowHourIn(TZ.UTC_P4)).toEqual(3);
  expect(nowHourIn(TZ.UTC_P430)).toEqual(4);
  expect(nowHourIn(TZ.UTC_P5)).toEqual(4);
  expect(nowHourIn(TZ.UTC_P530)).toEqual(5);
  expect(nowHourIn(TZ.UTC_P545)).toEqual(5);
  expect(nowHourIn(TZ.UTC_P6)).toEqual(5);
  expect(nowHourIn(TZ.UTC_P630)).toEqual(6);
  expect(nowHourIn(TZ.UTC_P7)).toEqual(6);
  expect(nowHourIn(TZ.UTC_P8)).toEqual(7);
  expect(nowHourIn(TZ.UTC_P845)).toEqual(8);
  expect(nowHourIn(TZ.UTC_P9)).toEqual(8);
  expect(nowHourIn(TZ.UTC_P930)).toEqual(10);
  expect(nowHourIn(TZ.UTC_P10)).toEqual(9);
  expect(nowHourIn(TZ.UTC_P1030)).toEqual(10);
  expect(nowHourIn(TZ.UTC_P11)).toEqual(11);
  expect(nowHourIn(TZ.UTC_P12)).toEqual(11);
  expect(nowHourIn(TZ.UTC_P1245)).toEqual(13);
  expect(nowHourIn(TZ.UTC_P13)).toEqual(12);
});

test("now hour in IANATimeZone 2024_04_24_00_48", () => {
  jest.setSystemTime(new Date(DATES.DATE_2024_04_24_00_48));
  expect(nowHourIn(TZ.UTC_M11)).toEqual(13);
  expect(nowHourIn(TZ.UTC_M10)).toEqual(14);
  expect(nowHourIn(TZ.UTC_M930)).toEqual(15);
  expect(nowHourIn(TZ.UTC_M9)).toEqual(15);
  expect(nowHourIn(TZ.UTC_M8)).toEqual(17);
  expect(nowHourIn(TZ.UTC_M7)).toEqual(18);
  expect(nowHourIn(TZ.UTC_M6)).toEqual(18);
  expect(nowHourIn(TZ.UTC_M5)).toEqual(20);
  expect(nowHourIn(TZ.UTC_M4)).toEqual(20);
  expect(nowHourIn(TZ.UTC_M330)).toEqual(22);
  expect(nowHourIn(TZ.UTC_M3)).toEqual(21);
  expect(nowHourIn(TZ.UTC_M2)).toEqual(22);
  expect(nowHourIn(TZ.UTC_M1)).toEqual(23);
  expect(nowHourIn(TZ.UTC_0)).toEqual(1);
  expect(nowHourIn(TZ.UTC_P1)).toEqual(1);
  expect(nowHourIn(TZ.UTC_P2)).toEqual(2);
  expect(nowHourIn(TZ.UTC_P3)).toEqual(3);
  expect(nowHourIn(TZ.UTC_P330)).toEqual(5);
  expect(nowHourIn(TZ.UTC_P4)).toEqual(4);
  expect(nowHourIn(TZ.UTC_P430)).toEqual(5);
  expect(nowHourIn(TZ.UTC_P5)).toEqual(5);
  expect(nowHourIn(TZ.UTC_P530)).toEqual(6);
  expect(nowHourIn(TZ.UTC_P545)).toEqual(6);
  expect(nowHourIn(TZ.UTC_P6)).toEqual(6);
  expect(nowHourIn(TZ.UTC_P630)).toEqual(7);
  expect(nowHourIn(TZ.UTC_P7)).toEqual(7);
  expect(nowHourIn(TZ.UTC_P8)).toEqual(8);
  expect(nowHourIn(TZ.UTC_P845)).toEqual(9);
  expect(nowHourIn(TZ.UTC_P9)).toEqual(9);
  expect(nowHourIn(TZ.UTC_P930)).toEqual(10);
  expect(nowHourIn(TZ.UTC_P10)).toEqual(10);
  expect(nowHourIn(TZ.UTC_P1030)).toEqual(11);
  expect(nowHourIn(TZ.UTC_P11)).toEqual(11);
  expect(nowHourIn(TZ.UTC_P12)).toEqual(12);
  expect(nowHourIn(TZ.UTC_P1245)).toEqual(13);
  expect(nowHourIn(TZ.UTC_P13)).toEqual(13);
});
