← Về thư mục
tests/literature-review/test_scripts.py
- DeduplicationTests · class · L68-L108 — class DeduplicationTests(unittest.TestCase)
- test_records_sharing_a_doi_collapse_to_one · method · L69-L74 — def test_records_sharing_a_doi_collapse_to_one(self) -> None
- test_doi_comparison_ignores_case_and_surrounding_space · method · L76-L81 — def test_doi_comparison_ignores_case_and_surrounding_space(self) -> None
- test_titles_only_deduplicate_records_that_have_no_doi · method · L83-L92 — def test_titles_only_deduplicate_records_that_have_no_doi(self) -> None: # Two records with the same title but different DOIs are two papers.
- test_the_first_occurrence_is_the_one_kept · method · L94-L101 — def test_the_first_occurrence_is_the_one_kept(self) -> None
- test_an_empty_list_deduplicates_to_an_empty_list · method · L103-L104 — def test_an_empty_list_deduplicates_to_an_empty_list(self) -> None
- test_records_with_neither_doi_nor_title_are_all_kept · method · L106-L108 — def test_records_with_neither_doi_nor_title_are_all_kept(self) -> None
- RankingTests · class · L111-L144 — class RankingTests(unittest.TestCase)
- test_citation_ranking_puts_the_most_cited_first · method · L112-L115 — def test_citation_ranking_puts_the_most_cited_first(self) -> None
- test_year_ranking_puts_the_newest_first · method · L117-L120 — def test_year_ranking_puts_the_newest_first(self) -> None
- test_relevance_ranking_uses_the_relevance_score · method · L122-L129 — def test_relevance_ranking_uses_the_relevance_score(self) -> None
- test_an_unknown_criterion_leaves_the_order_untouched · method · L131-L135 — def test_an_unknown_criterion_leaves_the_order_untouched(self) -> None
- test_ranking_does_not_mutate_the_input · method · L137-L140 — def test_ranking_does_not_mutate_the_input(self) -> None
- test_a_missing_citation_count_sorts_last_rather_than_erroring · method · L142-L144 — def test_a_missing_citation_count_sorts_last_rather_than_erroring(self) -> None
- YearFilterTests · class · L147-L169 — class YearFilterTests(unittest.TestCase)
- test_both_bounds_are_inclusive · method · L148-L151 — def test_both_bounds_are_inclusive(self) -> None
- test_each_bound_can_be_used_alone · method · L153-L155 — def test_each_bound_can_be_used_alone(self) -> None
- test_no_bounds_keeps_everything · method · L157-L158 — def test_no_bounds_keeps_everything(self) -> None
- test_an_unparseable_year_is_kept_rather_than_silently_dropped · method · L160-L164 — def test_an_unparseable_year_is_kept_rather_than_silently_dropped(self) -> None: # Losing a paper because a database returned "in press" would be worse # than including one outside the range.
- test_filtering_does_not_mutate_the_input · method · L166-L169 — def test_filtering_does_not_mutate_the_input(self) -> None
- SummaryTests · class · L172-L200 — class SummaryTests(unittest.TestCase)
- test_the_summary_counts_records_sources_and_years · method · L173-L179 — def test_the_summary_counts_records_sources_and_years(self) -> None
- test_citation_statistics_ignore_records_without_a_count · method · L181-L184 — def test_citation_statistics_ignore_records_without_a_count(self) -> None
- test_an_empty_corpus_summarises_to_zeroes_not_an_error · method · L186-L190 — def test_an_empty_corpus_summarises_to_zeroes_not_an_error(self) -> None
- test_a_non_numeric_citation_count_is_skipped · method · L192-L196 — def test_a_non_numeric_citation_count_is_skipped(self) -> None
- test_records_with_no_source_are_bucketed_as_unknown · method · L198-L200 — def test_records_with_no_source_are_bucketed_as_unknown(self) -> None
- FormattingTests · class · L203-L246 — class FormattingTests(unittest.TestCase)
- test_json_output_round_trips · method · L204-L206 — def test_json_output_round_trips(self) -> None
- test_markdown_lists_every_record_with_a_resolvable_doi_link · method · L208-L214 — def test_markdown_lists_every_record_with_a_resolvable_doi_link(self) -> None
- test_markdown_substitutes_placeholders_for_absent_fields · method · L216-L220 — def test_markdown_substitutes_placeholders_for_absent_fields(self) -> None
- test_bibtex_entries_are_balanced_and_keyed_by_author_and_year · method · L222-L227 — def test_bibtex_entries_are_balanced_and_keyed_by_author_and_year(self) -> None
- test_bibtex_omits_fields_the_record_does_not_have · method · L229-L232 — def test_bibtex_omits_fields_the_record_does_not_have(self) -> None
- test_bibtex_falls_back_to_a_placeholder_key · method · L234-L236 — def test_bibtex_falls_back_to_a_placeholder_key(self) -> None
- test_an_unknown_format_is_refused_by_name · method · L238-L240 — def test_an_unknown_format_is_refused_by_name(self) -> None
- test_an_empty_corpus_formats_without_error · method · L242-L246 — def test_an_empty_corpus_formats_without_error(self) -> None
- PipelineTests · class · L249-L260 — class PipelineTests(unittest.TestCase)
- test_dedupe_filter_and_rank_compose_into_a_stable_corpus · method · L250-L260 — def test_dedupe_filter_and_rank_compose_into_a_stable_corpus(self) -> None
- DependencyCheckTests · class · L263-L270 — class DependencyCheckTests(unittest.TestCase)
- test_the_pdf_generator_reports_missing_tooling_rather_than_crashing · method · L264-L270 — def test_the_pdf_generator_reports_missing_tooling_rather_than_crashing(self) -> None