public void NearestAboveTest() { Assert.Equal(1UL, ZCurve.NearestAbove(0, 0)); Assert.Equal(2UL, ZCurve.NearestAbove(0, 1)); Assert.Equal(4UL, ZCurve.NearestAbove(0, 2)); Assert.Equal(8UL, ZCurve.NearestAbove(0, 3)); Assert.Equal(1UL << 31, ZCurve.NearestAbove(0, 31)); Assert.Equal(1UL << 63, ZCurve.NearestAbove(0, 63)); Assert.Equal(3UL, ZCurve.NearestAbove(3, 0)); Assert.Equal(3UL, ZCurve.NearestAbove(3, 1)); Assert.Equal(6UL, ZCurve.NearestAbove(3, 2)); Assert.Equal(9UL, ZCurve.NearestAbove(3, 3)); Assert.Equal(18UL, ZCurve.NearestAbove(3, 4)); Assert.Equal(66UL, ZCurve.NearestAbove(3, 6)); Assert.Equal(129UL, ZCurve.NearestAbove(3, 7)); Assert.Equal((1UL << 31) + 1, ZCurve.NearestAbove(3, 31)); Assert.Equal((1UL << 63) + 1, ZCurve.NearestAbove(3, 63)); // TODO More }