new-iter label=first lower=bar upper=foo ---- first: ("bar", "foo") boundsBufIdx=1 iter label=first first next ---- bb@29: (bb@29, .) bc@30: (bc@30, .) # Clone an iterator from the original iterator. The clone should have its own # copy of the bounds. clone from=first to=second ---- first: ("bar", "foo") boundsBufIdx=1 second: ("bar", "foo") boundsBufIdx=1 iter label=second last prev ---- fo@150: (fo@150, .) fn@149: (fn@149, .) # Changing the bounds on the original should leave the clone's bounds unchanged. set-bounds label=first lower=boop ---- first: ("boop", ) boundsBufIdx=0 second: ("bar", "foo") boundsBufIdx=1 iter label=first seek-ge goop ---- gp@178: (gp@178, .) iter label=second prev ---- fm@148: (fm@148, .) set-bounds label=first lower=boop upper=bop ---- first: ("boop", "bop") boundsBufIdx=1 second: ("bar", "foo") boundsBufIdx=1 # Changing the bounds on the clone should leave the original's bounds unchanged. set-options label=second lower=a upper=z ---- first: ("boop", "bop") boundsBufIdx=1 second: ("a", "z") boundsBufIdx=0 # Test no-op set-options. The boundsBufIdx should remain unchanged, reflecting # that the bounds were not copied again. set-options label=second lower=a upper=z ---- first: ("boop", "bop") boundsBufIdx=1 second: ("a", "z") boundsBufIdx=0 # Test SetOptions with unchanged bounds but changes to other options. SetOptions # should hold onto the existing bounds buffers. The boundsBufIdx should still # remain unchanged, reflecting that the bounds were not copied. set-options label=second lower=a upper=z key-types=both ---- first: ("boop", "bop") boundsBufIdx=1 second: ("a", "z") boundsBufIdx=0 iter label=second seek-ge foo ---- fp@151: (fp@151, .) close label=first ---- second: ("a", "z") boundsBufIdx=0 close label=second ----