test_blank_csv_row (test_cohort.CohortTests.test_blank_csv_row) ... ok
test_bom_csv_accepted (test_cohort.CohortTests.test_bom_csv_accepted) ... ok
test_cancelled_order (test_cohort.CohortTests.test_cancelled_order) ... ok
test_csv_row_width (test_cohort.CohortTests.test_csv_row_width) ... ok
test_dangling_output_symlink_refused (test_cohort.CohortTests.test_dangling_output_symlink_refused) ... ok
test_duplicate_customer_id (test_cohort.CohortTests.test_duplicate_customer_id) ... ok
test_duplicate_json_key (test_cohort.CohortTests.test_duplicate_json_key) ... ok
test_duplicate_order_id (test_cohort.CohortTests.test_duplicate_order_id) ... ok
test_empty_master (test_cohort.CohortTests.test_empty_master) ... ok
test_empty_orders (test_cohort.CohortTests.test_empty_orders) ... ok
test_existing_output_preserved (test_cohort.CohortTests.test_existing_output_preserved) ... ok
test_header_exact (test_cohort.CohortTests.test_header_exact) ... ok
test_id_prefixes_order_customer_reference (test_cohort.CohortTests.test_id_prefixes_order_customer_reference) ... ok
test_input_hashes_unchanged (test_cohort.CohortTests.test_input_hashes_unchanged) ... ok
test_input_path_alias (test_cohort.CohortTests.test_input_path_alias) ... ok
test_invalid_month (test_cohort.CohortTests.test_invalid_month) ... ok
test_invalid_utf8 (test_cohort.CohortTests.test_invalid_utf8) ... ok
test_long_id (test_cohort.CohortTests.test_long_id) ... ok
test_master_after_coverage (test_cohort.CohortTests.test_master_after_coverage) ... ok
test_master_before_coverage (test_cohort.CohortTests.test_master_before_coverage) ... ok
test_missing_first_month_evidence (test_cohort.CohortTests.test_missing_first_month_evidence) ... ok
test_month_arithmetic_year_boundary (test_cohort.CohortTests.test_month_arithmetic_year_boundary) ... ok
test_noncanonical_month (test_cohort.CohortTests.test_noncanonical_month) ... ok
test_normal_counts_and_future_blanks (test_cohort.CohortTests.test_normal_counts_and_future_blanks) ... ok
test_observed_zero_is_not_future_blank (test_cohort.CohortTests.test_observed_zero_is_not_future_blank) ... ok
test_off_horizon_pairs_retained (test_cohort.CohortTests.test_off_horizon_pairs_retained) ... ok
test_order_after_cutoff (test_cohort.CohortTests.test_order_after_cutoff) ... ok
test_order_independent_outputs (test_cohort.CohortTests.test_order_independent_outputs) ... ok
test_partial_output_cleanup_on_write_failure (test_cohort.CohortTests.test_partial_output_cleanup_on_write_failure) ... ok
test_pending_order (test_cohort.CohortTests.test_pending_order) ... ok
test_percentage_exact_half_up (test_cohort.CohortTests.test_percentage_exact_half_up) ... ok
test_policy_boolean_offset (test_cohort.CohortTests.test_policy_boolean_offset) ... ok
test_policy_extra_key (test_cohort.CohortTests.test_policy_extra_key) ... ok
test_policy_float_offset (test_cohort.CohortTests.test_policy_float_offset) ... ok
test_policy_offset_limits (test_cohort.CohortTests.test_policy_offset_limits) ... ok
test_policy_reversed_window (test_cohort.CohortTests.test_policy_reversed_window) ... ok
test_policy_window_too_long (test_cohort.CohortTests.test_policy_window_too_long) ... ok
test_pre_first_purchase (test_cohort.CohortTests.test_pre_first_purchase) ... ok
test_row_bound (test_cohort.CohortTests.test_row_bound) ... ok
test_size_bound (test_cohort.CohortTests.test_size_bound) ... ok
test_unicode_id (test_cohort.CohortTests.test_unicode_id) ... ok
test_unknown_customer (test_cohort.CohortTests.test_unknown_customer) ... ok
test_whitespace_id_not_repaired (test_cohort.CohortTests.test_whitespace_id_not_repaired) ... ok

----------------------------------------------------------------------
Ran 43 tests in 0.039s

OK
