Index `files`, assert the named edge type appears at least `floor` times. * On failure, dump the full edge histogram so a regression is diagnosable. */
| 905 | /* Index `files`, assert the named edge type appears at least `floor` times. |
| 906 | * On failure, dump the full edge histogram so a regression is diagnosable. */ |
| 907 | static int edge_present(const LangFile *files, int nfiles, const char *edge, int floor) { |
| 908 | LangProj lp; |
| 909 | cbm_store_t *store = lang_index_files(&lp, files, nfiles); |
| 910 | int got = store ? cbm_store_count_edges_by_type(store, lp.project, edge) : -1; |
| 911 | if (got < floor) { |
| 912 | fprintf(stderr, " [EDGE] FAIL %-20s count=%d expected>=%d\n", edge, got, floor); |
| 913 | dump_edge_histogram(store, lp.project); |
| 914 | } |
| 915 | lang_cleanup(&lp, store); |
| 916 | return got >= floor; |
| 917 | } |
| 918 | |
| 919 | /* DEFINES — File -> definition, once per top-level def (purely structural). */ |
| 920 | TEST(contract_edge_defines) { |
no test coverage detected