BeforeEach(func() {
			boundedWorks = func(lo, hi memory.MemSize) memory.Range {
				rnge, err := memory.NewRange(lo, hi)
				Ω(err).ShouldNot(HaveOccurred())
				Ω(rnge).ShouldNot(BeNil())
				Ω(rnge.Floor()).Should(Equal(lo))
				Ω(rnge.Ceiling()).Should(Equal(hi))
				if lo.Equals(hi) {
					Ω(rnge.Degenerate()).Should(BeTrue())
				}
				return rnge
			}

			unboundedWorks = func(lo memory.MemSize) memory.Range {
				rnge, err := memory.NewUnboundedRange(lo)
				Ω(err).ShouldNot(HaveOccurred())
				Ω(rnge).ShouldNot(BeNil())
				Ω(rnge.Floor()).Should(Equal(lo))
				Ω(rnge.Degenerate()).Should(BeFalse())
				_, err = rnge.Ceiling()
				Ω(err).Should(HaveOccurred())
				return rnge
			}

			boundedFails = func(lo, hi memory.MemSize) {
				_, err := memory.NewRange(lo, hi)
				Ω(err).Should(HaveOccurred())
			}
		})
func unboundedMemoryRange(lo int64) memory.Range {
	r, err := memory.NewUnboundedRange(getMs(lo))
	Ω(err).ShouldNot(HaveOccurred())
	return r
}