test_rows

Naming an arm’s rows: offsets always, values only when someone reads them.

Functions

test_a_range_is_two_integers_at_any_row_count(→ None)

The source a split between two engines that each hold the data wants:

test_a_slice_carries_absolute_offsets(→ None)

Relative indices in, absolute offsets out: the offset is the number an

test_a_range_refuses_the_arm_that_reads_values(→ None)

Refuse rather than approximate, and refuse rather than materialize the

test_iterating_a_range_reaches_the_same_refusal(→ None)

An arm written against a row iterator would otherwise see no rows and

test_a_range_cannot_be_inverted(→ None)

test_a_batch_repr_does_not_print_the_table(→ None)

It lands in the refusal message above, and a six-million-row repr is

test_a_sequence_is_wrapped_in_place(→ None)

A caller who already has the rows pays nothing to hand them over --

test_a_whole_table_slice_does_not_copy(→ None)

A degenerate share hands one arm everything; copying the caller's

test_an_iterator_is_drained_because_it_cannot_serve_two_arms(→ None)

test_a_sub_range_must_lie_inside_its_parent(→ None)

Python slicing would clamp or wrap these; a boundary that arithmetic

test_a_sub_range_may_be_empty_or_the_whole_parent(→ None)

test_a_row_batch_refuses_a_negative_start(→ None)

Module Contents

test_rows.test_a_range_is_two_integers_at_any_row_count() → None

The source a split between two engines that each hold the data wants: six million rows and not one of them exists.

test_rows.test_a_slice_carries_absolute_offsets() → None

Relative indices in, absolute offsets out: the offset is the number an arm slices its own resident copy at, so it has to name the whole table.

test_rows.test_a_range_refuses_the_arm_that_reads_values() → None

Refuse rather than approximate, and refuse rather than materialize the table behind the caller’s back to keep an arm fed.

test_rows.test_iterating_a_range_reaches_the_same_refusal() → None

An arm written against a row iterator would otherwise see no rows and return a confident empty answer.

test_rows.test_a_range_cannot_be_inverted() → None
test_rows.test_a_batch_repr_does_not_print_the_table() → None

It lands in the refusal message above, and a six-million-row repr is not a message.

test_rows.test_a_sequence_is_wrapped_in_place() → None

A caller who already has the rows pays nothing to hand them over – identity is what pins that, because a copy compares equal and fails only is.

test_rows.test_a_whole_table_slice_does_not_copy() → None

A degenerate share hands one arm everything; copying the caller’s sequence to say so is the same cost in miniature.

test_rows.test_an_iterator_is_drained_because_it_cannot_serve_two_arms() → None
test_rows.test_a_sub_range_must_lie_inside_its_parent(bounds) → None

Python slicing would clamp or wrap these; a boundary that arithmetic got wrong must refuse rather than hand an arm a different row set.

test_rows.test_a_sub_range_may_be_empty_or_the_whole_parent() → None
test_rows.test_a_row_batch_refuses_a_negative_start() → None