foundational_lib 1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/Articles/1.html +524 -0
- data/Articles/10.html +63 -0
- data/Articles/11.html +153 -0
- data/Articles/12.html +15 -0
- data/Articles/13.html +14 -0
- data/Articles/14.html +299 -0
- data/Articles/15.html +125 -0
- data/Articles/16.html +908 -0
- data/Articles/2.html +83 -0
- data/Articles/3.html +46 -0
- data/Articles/4.html +108 -0
- data/Articles/5.html +186 -0
- data/Articles/6.html +49 -0
- data/Articles/7.html +25 -0
- data/Articles/8.html +128 -0
- data/Articles/9.html +72 -0
- data/Articles/convert_html_to_markdown.sh +8 -0
- data/Articles/css.css +54 -0
- data/Articles/format.rb +95 -0
- data/Articles/index.html +34 -0
- data/Articles_MD/1.html.md +451 -0
- data/Articles_MD/10.html.md +57 -0
- data/Articles_MD/11.html.md +231 -0
- data/Articles_MD/12.html.md +16 -0
- data/Articles_MD/13.html.md +15 -0
- data/Articles_MD/14.html.md +280 -0
- data/Articles_MD/15.html.md +135 -0
- data/Articles_MD/16.html.md +840 -0
- data/Articles_MD/17.html.md +838 -0
- data/Articles_MD/2.html.md +82 -0
- data/Articles_MD/3.html.md +163 -0
- data/Articles_MD/4.html.md +137 -0
- data/Articles_MD/5.html.md +175 -0
- data/Articles_MD/6.html.md +47 -0
- data/Articles_MD/7.html.md +24 -0
- data/Articles_MD/8.html.md +71 -0
- data/Articles_MD/9.html.md +68 -0
- data/Articles_MD/index.html.md +25 -0
- data/DOCS.md +11153 -0
- data/GENERATE_CUSTOM_FOUNDATIONALLIB.rb +89 -0
- data/LICENSE.md +16 -0
- data/NOTE.md +29 -0
- data/README.md +120 -0
- data/custom_library_example.h +13999 -0
- data/docs/Doxyfile +2746 -0
- data/docs/LICENSE +21 -0
- data/docs/Makefile +39 -0
- data/docs/custom-alternative.css +54 -0
- data/docs/custom.css +57 -0
- data/docs/doxygen-awesome-darkmode-toggle.js +157 -0
- data/docs/doxygen-awesome-fragment-copy-button.js +85 -0
- data/docs/doxygen-awesome-interactive-toc.js +81 -0
- data/docs/doxygen-awesome-paragraph-link.js +51 -0
- data/docs/doxygen-awesome-sidebar-only-darkmode-toggle.css +40 -0
- data/docs/doxygen-awesome-sidebar-only.css +116 -0
- data/docs/doxygen-awesome-tabs.js +90 -0
- data/docs/doxygen-awesome.css +2669 -0
- data/docs/doxygen-custom/custom-alternative.css +54 -0
- data/docs/doxygen-custom/custom.css +57 -0
- data/docs/doxygen-custom/header.html +90 -0
- data/docs/doxygen-custom/toggle-alternative-theme.js +12 -0
- data/docs/header.html +90 -0
- data/docs/html/html/annotated.html +145 -0
- data/docs/html/html/annotated_dup.js +10 -0
- data/docs/html/html/bc_s.png +0 -0
- data/docs/html/html/bdwn.png +0 -0
- data/docs/html/html/classes.html +149 -0
- data/docs/html/html/closed.png +0 -0
- data/docs/html/html/custom-alternative.css +54 -0
- data/docs/html/html/custom.css +57 -0
- data/docs/html/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html +141 -0
- data/docs/html/html/dir_68267d1309a1af8e8297ef4c3efbcdba.js +4 -0
- data/docs/html/html/doc.png +0 -0
- data/docs/html/html/doxygen-awesome-darkmode-toggle.js +157 -0
- data/docs/html/html/doxygen-awesome-fragment-copy-button.js +85 -0
- data/docs/html/html/doxygen-awesome-interactive-toc.js +81 -0
- data/docs/html/html/doxygen-awesome-paragraph-link.js +51 -0
- data/docs/html/html/doxygen-awesome-sidebar-only-darkmode-toggle.css +40 -0
- data/docs/html/html/doxygen-awesome-sidebar-only.css +116 -0
- data/docs/html/html/doxygen-awesome-tabs.js +90 -0
- data/docs/html/html/doxygen-awesome.css +2669 -0
- data/docs/html/html/doxygen.css +1793 -0
- data/docs/html/html/doxygen.svg +26 -0
- data/docs/html/html/dynsections.js +121 -0
- data/docs/html/html/files.html +140 -0
- data/docs/html/html/files_dup.js +4 -0
- data/docs/html/html/folderclosed.png +0 -0
- data/docs/html/html/folderopen.png +0 -0
- data/docs/html/html/foundationallib_8h.html +17294 -0
- data/docs/html/html/foundationallib_8h.js +445 -0
- data/docs/html/html/foundationallib_8h__incl.map +15 -0
- data/docs/html/html/foundationallib_8h__incl.md5 +1 -0
- data/docs/html/html/foundationallib_8h__incl.svg +202 -0
- data/docs/html/html/foundationallib_8h_source.html +9125 -0
- data/docs/html/html/functions.html +188 -0
- data/docs/html/html/functions_vars.html +188 -0
- data/docs/html/html/globals.html +158 -0
- data/docs/html/html/globals_b.html +137 -0
- data/docs/html/html/globals_c.html +173 -0
- data/docs/html/html/globals_d.html +185 -0
- data/docs/html/html/globals_defs.html +361 -0
- data/docs/html/html/globals_dup.js +19 -0
- data/docs/html/html/globals_e.html +221 -0
- data/docs/html/html/globals_f.html +560 -0
- data/docs/html/html/globals_func.html +158 -0
- data/docs/html/html/globals_func.js +19 -0
- data/docs/html/html/globals_func_b.html +137 -0
- data/docs/html/html/globals_func_c.html +173 -0
- data/docs/html/html/globals_func_d.html +179 -0
- data/docs/html/html/globals_func_e.html +218 -0
- data/docs/html/html/globals_func_f.html +341 -0
- data/docs/html/html/globals_func_g.html +140 -0
- data/docs/html/html/globals_func_i.html +188 -0
- data/docs/html/html/globals_func_j.html +137 -0
- data/docs/html/html/globals_func_l.html +152 -0
- data/docs/html/html/globals_func_m.html +152 -0
- data/docs/html/html/globals_func_p.html +374 -0
- data/docs/html/html/globals_func_r.html +194 -0
- data/docs/html/html/globals_func_s.html +386 -0
- data/docs/html/html/globals_func_u.html +140 -0
- data/docs/html/html/globals_func_w.html +140 -0
- data/docs/html/html/globals_g.html +140 -0
- data/docs/html/html/globals_i.html +188 -0
- data/docs/html/html/globals_j.html +137 -0
- data/docs/html/html/globals_l.html +152 -0
- data/docs/html/html/globals_m.html +152 -0
- data/docs/html/html/globals_p.html +374 -0
- data/docs/html/html/globals_r.html +194 -0
- data/docs/html/html/globals_s.html +389 -0
- data/docs/html/html/globals_type.html +144 -0
- data/docs/html/html/globals_u.html +140 -0
- data/docs/html/html/globals_vars.html +135 -0
- data/docs/html/html/globals_w.html +140 -0
- data/docs/html/html/graph_legend.html +194 -0
- data/docs/html/html/graph_legend.md5 +1 -0
- data/docs/html/html/graph_legend.svg +117 -0
- data/docs/html/html/index.html +134 -0
- data/docs/html/html/jquery.js +35 -0
- data/docs/html/html/logo.drawio.svg +1 -0
- data/docs/html/html/menu.js +51 -0
- data/docs/html/html/menudata.js +75 -0
- data/docs/html/html/nav_f.png +0 -0
- data/docs/html/html/nav_g.png +0 -0
- data/docs/html/html/nav_h.png +0 -0
- data/docs/html/html/navtree.css +146 -0
- data/docs/html/html/navtree.js +546 -0
- data/docs/html/html/navtreedata.js +57 -0
- data/docs/html/html/navtreeindex0.js +253 -0
- data/docs/html/html/navtreeindex1.js +253 -0
- data/docs/html/html/navtreeindex2.js +18 -0
- data/docs/html/html/open.png +0 -0
- data/docs/html/html/resize.js +140 -0
- data/docs/html/html/search/all_0.html +37 -0
- data/docs/html/html/search/all_0.js +12 -0
- data/docs/html/html/search/all_1.html +37 -0
- data/docs/html/html/search/all_1.js +4 -0
- data/docs/html/html/search/all_10.html +37 -0
- data/docs/html/html/search/all_10.js +6 -0
- data/docs/html/html/search/all_11.html +37 -0
- data/docs/html/html/search/all_11.js +5 -0
- data/docs/html/html/search/all_12.html +37 -0
- data/docs/html/html/search/all_12.js +4 -0
- data/docs/html/html/search/all_13.html +37 -0
- data/docs/html/html/search/all_13.js +5 -0
- data/docs/html/html/search/all_2.html +37 -0
- data/docs/html/html/search/all_2.js +17 -0
- data/docs/html/html/search/all_3.html +37 -0
- data/docs/html/html/search/all_3.js +21 -0
- data/docs/html/html/search/all_4.html +37 -0
- data/docs/html/html/search/all_4.js +34 -0
- data/docs/html/html/search/all_5.html +37 -0
- data/docs/html/html/search/all_5.js +147 -0
- data/docs/html/html/search/all_6.html +37 -0
- data/docs/html/html/search/all_6.js +5 -0
- data/docs/html/html/search/all_7.html +37 -0
- data/docs/html/html/search/all_7.js +22 -0
- data/docs/html/html/search/all_8.html +37 -0
- data/docs/html/html/search/all_8.js +4 -0
- data/docs/html/html/search/all_9.html +37 -0
- data/docs/html/html/search/all_9.js +4 -0
- data/docs/html/html/search/all_a.html +37 -0
- data/docs/html/html/search/all_a.js +9 -0
- data/docs/html/html/search/all_b.html +37 -0
- data/docs/html/html/search/all_b.js +9 -0
- data/docs/html/html/search/all_c.html +37 -0
- data/docs/html/html/search/all_c.js +4 -0
- data/docs/html/html/search/all_d.html +37 -0
- data/docs/html/html/search/all_d.js +83 -0
- data/docs/html/html/search/all_e.html +37 -0
- data/docs/html/html/search/all_e.js +25 -0
- data/docs/html/html/search/all_f.html +37 -0
- data/docs/html/html/search/all_f.js +91 -0
- data/docs/html/html/search/classes_0.html +37 -0
- data/docs/html/html/search/classes_0.js +5 -0
- data/docs/html/html/search/classes_1.html +37 -0
- data/docs/html/html/search/classes_1.js +5 -0
- data/docs/html/html/search/classes_2.html +37 -0
- data/docs/html/html/search/classes_2.js +5 -0
- data/docs/html/html/search/classes_3.html +37 -0
- data/docs/html/html/search/classes_3.js +4 -0
- data/docs/html/html/search/close.svg +31 -0
- data/docs/html/html/search/defines_0.html +37 -0
- data/docs/html/html/search/defines_0.js +4 -0
- data/docs/html/html/search/defines_1.html +37 -0
- data/docs/html/html/search/defines_1.js +4 -0
- data/docs/html/html/search/defines_2.html +37 -0
- data/docs/html/html/search/defines_2.js +74 -0
- data/docs/html/html/search/files_0.html +37 -0
- data/docs/html/html/search/files_0.js +4 -0
- data/docs/html/html/search/functions_0.html +37 -0
- data/docs/html/html/search/functions_0.js +11 -0
- data/docs/html/html/search/functions_1.html +37 -0
- data/docs/html/html/search/functions_1.js +4 -0
- data/docs/html/html/search/functions_2.html +37 -0
- data/docs/html/html/search/functions_2.js +16 -0
- data/docs/html/html/search/functions_3.html +37 -0
- data/docs/html/html/search/functions_3.js +18 -0
- data/docs/html/html/search/functions_4.html +37 -0
- data/docs/html/html/search/functions_4.js +31 -0
- data/docs/html/html/search/functions_5.html +37 -0
- data/docs/html/html/search/functions_5.js +72 -0
- data/docs/html/html/search/functions_6.html +37 -0
- data/docs/html/html/search/functions_6.js +5 -0
- data/docs/html/html/search/functions_7.html +37 -0
- data/docs/html/html/search/functions_7.js +21 -0
- data/docs/html/html/search/functions_8.html +37 -0
- data/docs/html/html/search/functions_8.js +4 -0
- data/docs/html/html/search/functions_9.html +37 -0
- data/docs/html/html/search/functions_9.js +9 -0
- data/docs/html/html/search/functions_a.html +37 -0
- data/docs/html/html/search/functions_a.js +9 -0
- data/docs/html/html/search/functions_b.html +37 -0
- data/docs/html/html/search/functions_b.js +83 -0
- data/docs/html/html/search/functions_c.html +37 -0
- data/docs/html/html/search/functions_c.js +23 -0
- data/docs/html/html/search/functions_d.html +37 -0
- data/docs/html/html/search/functions_d.js +87 -0
- data/docs/html/html/search/functions_e.html +37 -0
- data/docs/html/html/search/functions_e.js +5 -0
- data/docs/html/html/search/functions_f.html +37 -0
- data/docs/html/html/search/functions_f.js +5 -0
- data/docs/html/html/search/mag_sel.svg +74 -0
- data/docs/html/html/search/nomatches.html +13 -0
- data/docs/html/html/search/search.css +257 -0
- data/docs/html/html/search/search.js +816 -0
- data/docs/html/html/search/search_l.png +0 -0
- data/docs/html/html/search/search_m.png +0 -0
- data/docs/html/html/search/search_r.png +0 -0
- data/docs/html/html/search/searchdata.js +33 -0
- data/docs/html/html/search/typedefs_0.html +37 -0
- data/docs/html/html/search/typedefs_0.js +4 -0
- data/docs/html/html/search/typedefs_1.html +37 -0
- data/docs/html/html/search/typedefs_1.js +5 -0
- data/docs/html/html/search/typedefs_2.html +37 -0
- data/docs/html/html/search/typedefs_2.js +4 -0
- data/docs/html/html/search/variables_0.html +37 -0
- data/docs/html/html/search/variables_0.js +4 -0
- data/docs/html/html/search/variables_1.html +37 -0
- data/docs/html/html/search/variables_1.js +4 -0
- data/docs/html/html/search/variables_2.html +37 -0
- data/docs/html/html/search/variables_2.js +5 -0
- data/docs/html/html/search/variables_3.html +37 -0
- data/docs/html/html/search/variables_3.js +5 -0
- data/docs/html/html/search/variables_4.html +37 -0
- data/docs/html/html/search/variables_4.js +4 -0
- data/docs/html/html/search/variables_5.html +37 -0
- data/docs/html/html/search/variables_5.js +4 -0
- data/docs/html/html/search/variables_6.html +37 -0
- data/docs/html/html/search/variables_6.js +4 -0
- data/docs/html/html/search/variables_7.html +37 -0
- data/docs/html/html/search/variables_7.js +5 -0
- data/docs/html/html/search/variables_8.html +37 -0
- data/docs/html/html/search/variables_8.js +5 -0
- data/docs/html/html/search/variables_9.html +37 -0
- data/docs/html/html/search/variables_9.js +5 -0
- data/docs/html/html/search/variables_a.html +37 -0
- data/docs/html/html/search/variables_a.js +4 -0
- data/docs/html/html/splitbar.png +0 -0
- data/docs/html/html/struct_dict.html +195 -0
- data/docs/html/html/struct_dict.js +6 -0
- data/docs/html/html/struct_dict_key_value.html +197 -0
- data/docs/html/html/struct_dict_key_value.js +6 -0
- data/docs/html/html/struct_frozen_dict.html +195 -0
- data/docs/html/html/struct_frozen_dict.js +6 -0
- data/docs/html/html/struct_frozen_set.html +195 -0
- data/docs/html/html/struct_frozen_set.js +6 -0
- data/docs/html/html/struct_set.html +195 -0
- data/docs/html/html/struct_set.js +6 -0
- data/docs/html/html/struct_set_key.html +179 -0
- data/docs/html/html/struct_set_key.js +5 -0
- data/docs/html/html/struct_thread_data.html +291 -0
- data/docs/html/html/struct_thread_data.js +12 -0
- data/docs/html/html/sync_off.png +0 -0
- data/docs/html/html/sync_on.png +0 -0
- data/docs/html/html/tab_a.png +0 -0
- data/docs/html/html/tab_b.png +0 -0
- data/docs/html/html/tab_h.png +0 -0
- data/docs/html/html/tab_s.png +0 -0
- data/docs/html/html/tabs.css +1 -0
- data/docs/html/html/toggle-alternative-theme.js +12 -0
- data/docs/img/screenshot.png +0 -0
- data/docs/img/testimage.png +0 -0
- data/docs/img/theme-variants-base.drawio.svg +117 -0
- data/docs/img/theme-variants-sidebar-only.drawio.svg +102 -0
- data/docs/logo.drawio.svg +1 -0
- data/docs/package.json +34 -0
- data/docs/src/foundationallib.h +13061 -0
- data/docs/toggle-alternative-theme.js +12 -0
- data/example_of_transpilation_comments.txt +167 -0
- data/foundationallib.gemspec +14 -0
- data/foundationallib.h +13999 -0
- data/platforms/README.md +17 -0
- data/platforms/header_and_separate_compilation_unit/Makefile +18 -0
- data/platforms/header_and_separate_compilation_unit/foundationallib_noninline.c +13014 -0
- data/platforms/header_and_separate_compilation_unit/foundationallib_noninline.h +316 -0
- data/platforms/header_and_separate_compilation_unit/foundationallib_noninline.o +0 -0
- data/platforms/header_and_separate_compilation_unit/non_inline_example +0 -0
- data/platforms/header_and_separate_compilation_unit/non_inline_example.c +11 -0
- data/platforms/header_and_separate_compilation_unit_all_safe_funcs/Makefile +18 -0
- data/platforms/header_and_separate_compilation_unit_all_safe_funcs/foundationallib_noninline.c +13014 -0
- data/platforms/header_and_separate_compilation_unit_all_safe_funcs/foundationallib_noninline.h +317 -0
- data/platforms/header_and_separate_compilation_unit_all_safe_funcs/foundationallib_noninline.o +0 -0
- data/platforms/header_and_separate_compilation_unit_all_safe_funcs/non_inline_example +0 -0
- data/platforms/header_and_separate_compilation_unit_all_safe_funcs/non_inline_example.c +11 -0
- data/platforms/header_and_separate_compilation_unit_all_safe_funcs/wont_compile.c +8 -0
- data/tests/decoupled_thorough_tests +0 -0
- data/tests/decoupled_thorough_tests.c +95 -0
- data/tests/decoupled_thorough_tests.exe +0 -0
- data/tests/decoupled_thorough_tests32 +0 -0
- data/tests/deps_for_testing +9 -0
- data/tests/deps_for_testing.sh +23 -0
- data/tests/destination_file.txt +1 -0
- data/tests/ex_ample.txt +1 -0
- data/tests/existing_file.txt +127 -0
- data/tests/lib_and_tests +0 -0
- data/tests/lib_and_tests.c +15920 -0
- data/tests/lib_and_tests.exe +0 -0
- data/tests/lib_and_tests32 +0 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_append_string_to_array.c +33 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_append_string_to_array_no_initial_alloc.c +51 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_array_total_string_length.c +25 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_arraydup.c +33 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_calculate_average_in_int_array.c +70 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_calculate_sum_in_int_array.c +47 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_common_prefix_length.c +23 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_common_suffix_length.c +23 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_concatenate_five_strings.c +32 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_concatenate_four_strings.c +39 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_concatenate_string_array.c +28 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_concatenate_strings.c +47 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_concatenate_three_strings.c +43 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_count_occurrences_of_substr.c +21 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_count_occurrences_of_substr_len.c +66 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_add.c +49 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_del_key.c +26 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_del_keys.c +69 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_del_values.c +69 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_destructor.c +69 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_get.c +69 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_get_check.c +75 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_hash.c +18 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_iter.c +69 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_new_instance.c +69 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_reserve_more.c +21 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_resize.c +8 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_size.c +79 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_to_array.c +26 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dict_to_string.c +29 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_dup_format.c +58 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_ends_with.c +48 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_char_ptrs.c +55 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_chars.c +53 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_double_ptrs.c +50 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_doubles.c +35 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_float_ptrs.c +36 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_floats.c +45 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_int_ptrs.c +51 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_ints.c +55 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_long_long_ptrs.c +27 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_long_longs.c +53 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_long_ptrs.c +66 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_longs.c +47 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_short_ptrs.c +36 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_shorts.c +52 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_size_t_ptrs.c +62 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_size_ts.c +62 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_uchar_ptrs.c +46 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_uchars.c +60 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_uint_ptrs.c +37 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_uints.c +36 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_ulong_long_ptrs.c +56 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_ulong_longs.c +46 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_ulong_ptrs.c +38 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_ulongs.c +37 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_ushort_ptrs.c +30 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_array_of_ushorts.c +55 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_equal_strings.c +45 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_filter.c +59 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_filter_int.c +39 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_find_first_of.c +48 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_find_last_of.c +48 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_find_max_int_in_array.c +55 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_find_min_int_in_array.c +58 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_first_non_repeating_char.c +42 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_format_string.c +68 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_free_array.c +63 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_free_string_array.c +50 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_dict_del_keys.c +28 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_dict_del_values.c +64 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_dict_destructor.c +23 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_dict_get.c +27 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_dict_get_check.c +32 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_dict_new_instance.c +23 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_dict_size.c +33 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_dict_to_array.c +51 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_dict_to_string.c +48 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_set_del_keys.c +35 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_set_destructor.c +55 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_set_in.c +70 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_set_iter.c +71 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_set_new_instance.c +26 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_set_size.c +46 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_set_to_array.c +70 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_frozen_set_to_string.c +52 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_generate_range.c +62 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_index_of_char.c +77 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_int_to_string.c +54 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_alphanumeric.c +50 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_array_digit.c +67 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_array_lower.c +52 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_array_upper.c +28 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_numeric.c +36 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_string_alpha.c +43 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_string_digit.c +54 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_string_lower.c +50 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_string_space.c +48 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_string_upper.c +72 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_valid_integer.c +16 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_is_valid_utf8.c +46 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_join.c +53 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_last_index_of_char.c +15 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_list_comprehension.c +95 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_list_comprehension_multithreaded.c +41 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_longest_common_prefix.c +35 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_longest_common_suffix.c +61 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_map.c +46 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_map_int.c +59 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_prepend_string_to_array.c +68 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_prepend_string_to_array_no_initial_alloc.c +57 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_rand_number_from_range_inclusive_signed.c +41 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_rand_number_from_range_inclusive_unsigned.c +23 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_reduce.c +49 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_reduce_int.c +44 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_reject_array.c +47 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_replace_all.c +73 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_replace_all_with_callback.c +46 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_replace_all_with_lens.c +61 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_replicate.c +56 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_reverse_int_array.c +58 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_reverse_string.c +58 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_reverse_string_in_place.c +60 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_reverse_words.c +58 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_sample_strings.c +48 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_select_array.c +29 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_add.c +69 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_del_key.c +29 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_del_keys.c +35 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_destructor.c +31 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_hash.c +44 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_in.c +52 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_iter.c +69 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_new_instance.c +30 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_reserve_more.c +36 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_resize.c +37 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_size.c +42 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_to_array.c +41 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_set_to_string.c +81 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_shellescape.c +53 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_shuffle_strings_in_place.c +39 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_split.c +64 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_starts_with.c +39 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_str_to_double.c +32 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_string_array_uniq.c +60 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_string_array_uniq_adjacent.c +54 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_string_to_int.c +55 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_string_to_json.c +98 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_string_to_lowercase.c +73 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_string_to_title_case.c +80 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_string_to_uppercase.c +78 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_strip.c +84 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/src/test_trim_chars.c +85 -0
- data/tests/more/experimental/third_test_suite/non_production_ready_test_suite/test_every_relevant_function_in_a_separate_thorough_program/work_in_progress_code/testall.sh +15 -0
- data/tests/run_test_suite.sh +117 -0
- data/tests/source_file.txt +1 -0
- data/tests/test_log.txt +1047 -0
- data/tools/FUTURE +18 -0
- data/tools/HEADERS.h +316 -0
- data/tools/HEADERS_ONLY_FUNCTIONS.h +284 -0
- data/tools/HEADERS_WITH_PREFIX.h +33 -0
- data/tools/RSUB_LICENSE.txt +25 -0
- data/tools/benchmark_libc.c +263 -0
- data/tools/deprecated/GENERATE_CUSTOM_FOUNDATIONALLIB.sh.old +67 -0
- data/tools/deps_for_testing.sh +23 -0
- data/tools/documentation_generate +17 -0
- data/tools/foundationallib.h +13999 -0
- data/tools/funcs_c +15858 -0
- data/tools/funcs_c_with_tests.c +15920 -0
- data/tools/gen_video_new +444 -0
- data/tools/gen_video_new_times +41 -0
- data/tools/generate_promo_video_for_library.rb +19 -0
- data/tools/index.html +147 -0
- data/tools/lib.html +20 -0
- data/tools/lib2.html +22 -0
- data/tools/lib3.html +22 -0
- data/tools/lynx.rb +145 -0
- data/tools/make_image_of_docs +741 -0
- data/tools/pic.png +0 -0
- data/tools/pic2.png +0 -0
- data/tools/pic3.png +0 -0
- data/tools/play_with_string_replace_functions.c +236 -0
- data/tools/rsub +0 -0
- data/tools/rsub.c +501 -0
- data/tools/run_lib +365 -0
- data/tools/update +44 -0
- data/tools/with_tests +0 -0
- data/tools/with_tests32 +0 -0
- data/transpile_slow_scripting_into_c.rb +225 -0
- metadata +693 -0
@@ -0,0 +1,55 @@
|
|
1
|
+
#include "../foundationallib.h"
|
2
|
+
#include <assert.h>
|
3
|
+
#include <stdio.h>
|
4
|
+
|
5
|
+
FOUNDATIONAL_LIB_FUNC int equal_array_of_ushorts(const unsigned short *array, const unsigned short *array2, size_t size)
|
6
|
+
{
|
7
|
+
for (size_t i = 0; i < size; i++)
|
8
|
+
{
|
9
|
+
if (array[i] != array2[i])
|
10
|
+
{
|
11
|
+
return 0;
|
12
|
+
}
|
13
|
+
}
|
14
|
+
return 1;
|
15
|
+
}
|
16
|
+
|
17
|
+
int main()
|
18
|
+
{
|
19
|
+
// Test 1: Arrays are equal
|
20
|
+
{
|
21
|
+
unsigned short array1[] = {1, 2, 3, 4};
|
22
|
+
unsigned short array2[] = {1, 2, 3, 4};
|
23
|
+
size_t size = 4;
|
24
|
+
assert(equal_array_of_ushorts(array1, array2, size) == 1);
|
25
|
+
}
|
26
|
+
|
27
|
+
// Test 2: Arrays are not equal
|
28
|
+
{
|
29
|
+
unsigned short array1[] = {1, 2, 3, 4};
|
30
|
+
unsigned short array2[] = {1, 2, 3, 5};
|
31
|
+
size_t size = 4;
|
32
|
+
assert(equal_array_of_ushorts(array1, array2, size) == 0);
|
33
|
+
}
|
34
|
+
|
35
|
+
// Test 3: Arrays of different sizes
|
36
|
+
{
|
37
|
+
unsigned short array1[] = {1, 2, 3};
|
38
|
+
unsigned short array2[] = {1, 2, 3, 4, 5};
|
39
|
+
size_t size1 = 3;
|
40
|
+
size_t size2 = 5;
|
41
|
+
assert(equal_array_of_ushorts(array1, array2, size1) == 0);
|
42
|
+
assert(equal_array_of_ushorts(array1, array2, size2) == 0);
|
43
|
+
}
|
44
|
+
|
45
|
+
// Test 4: Empty arrays
|
46
|
+
{
|
47
|
+
unsigned short array1[] = {};
|
48
|
+
unsigned short array2[] = {};
|
49
|
+
size_t size = 0;
|
50
|
+
assert(equal_array_of_ushorts(array1, array2, size) == 1);
|
51
|
+
}
|
52
|
+
|
53
|
+
printf("All tests passed!\n");
|
54
|
+
return 0;
|
55
|
+
}
|
@@ -0,0 +1,45 @@
|
|
1
|
+
#include "../foundationallib.h"
|
2
|
+
#include <assert.h>
|
3
|
+
#include <stdio.h>
|
4
|
+
|
5
|
+
#define TEST_CASES 6
|
6
|
+
|
7
|
+
void test_equal_strings()
|
8
|
+
{
|
9
|
+
// Test case 1: Both strings are empty
|
10
|
+
const char *str1 = "";
|
11
|
+
const char *str2 = "";
|
12
|
+
assert(equal_strings(str1, str2) == 1);
|
13
|
+
|
14
|
+
// Test case 2: Both strings are "hello"
|
15
|
+
str1 = "hello";
|
16
|
+
str2 = "hello";
|
17
|
+
assert(equal_strings(str1, str2) == 1);
|
18
|
+
|
19
|
+
// Test case 3: First string is "apple" and second string is "applesauce"
|
20
|
+
str1 = "apple";
|
21
|
+
str2 = "applesauce";
|
22
|
+
assert(equal_strings(str1, str2) == 0);
|
23
|
+
|
24
|
+
// Test case 4: First string is "testing" and second string is "testing"
|
25
|
+
str1 = "testing";
|
26
|
+
str2 = "testing";
|
27
|
+
assert(equal_strings(str1, str2) == 1);
|
28
|
+
|
29
|
+
// Test case 5: First string is "Hello" and second string is "hello"
|
30
|
+
str1 = "Hello";
|
31
|
+
str2 = "hello";
|
32
|
+
assert(equal_strings(str1, str2) == 0);
|
33
|
+
|
34
|
+
// Test case 6: First string is "12345" and second string is "54321"
|
35
|
+
str1 = "12345";
|
36
|
+
str2 = "54321";
|
37
|
+
assert(equal_strings(str1, str2) == 0);
|
38
|
+
}
|
39
|
+
|
40
|
+
int main()
|
41
|
+
{
|
42
|
+
test_equal_strings();
|
43
|
+
printf("All test cases passed!\n");
|
44
|
+
return 0;
|
45
|
+
}
|
@@ -0,0 +1,59 @@
|
|
1
|
+
#include "../foundationallib.h"
|
2
|
+
|
3
|
+
#include <assert.h>
|
4
|
+
#include <stdio.h>
|
5
|
+
|
6
|
+
size_t filter(void *source, size_t source_size, size_t elem_size, void *destination, size_t dest_size, int (*condition)(void *))
|
7
|
+
{
|
8
|
+
size_t num_filtered = 0;
|
9
|
+
for (size_t i = 0; i < source_size; i++)
|
10
|
+
{
|
11
|
+
if (condition((char *)source + (i * elem_size)))
|
12
|
+
{
|
13
|
+
if (num_filtered < dest_size)
|
14
|
+
{
|
15
|
+
memcpy((char *)destination + (num_filtered * elem_size), (char *)source + (i * elem_size), elem_size);
|
16
|
+
num_filtered++;
|
17
|
+
}
|
18
|
+
else
|
19
|
+
{
|
20
|
+
break; // Destination array full
|
21
|
+
}
|
22
|
+
}
|
23
|
+
}
|
24
|
+
return num_filtered;
|
25
|
+
}
|
26
|
+
|
27
|
+
int main()
|
28
|
+
{
|
29
|
+
// Test case 1: source array is empty
|
30
|
+
int source_empty[] = {};
|
31
|
+
int destination_empty[5];
|
32
|
+
size_t num_filtered_empty = filter(source_empty, 0, sizeof(int), destination_empty, 5, is_even_condition);
|
33
|
+
assert(num_filtered_empty == 0);
|
34
|
+
|
35
|
+
// Test case 2: destination array is empty
|
36
|
+
int source_not_empty[] = {1, 2, 3, 4, 5};
|
37
|
+
int destination_full[1];
|
38
|
+
size_t num_filtered_full = filter(source_not_empty, 5, sizeof(int), destination_full, 0, is_even_condition);
|
39
|
+
assert(num_filtered_full == 0);
|
40
|
+
|
41
|
+
// Test case 3: all elements satisfy the condition
|
42
|
+
int source_all_even[] = {2, 4, 6, 8, 10};
|
43
|
+
int destination_all_even[5];
|
44
|
+
size_t num_filtered_all_even = filter(source_all_even, 5, sizeof(int), destination_all_even, 5, is_even_condition);
|
45
|
+
assert(num_filtered_all_even == 5);
|
46
|
+
for (size_t i = 0; i < num_filtered_all_even; i++)
|
47
|
+
{
|
48
|
+
assert(*(int *)((char *)destination_all_even + (i * sizeof(int))) == source_all_even[i]);
|
49
|
+
}
|
50
|
+
|
51
|
+
// Test case 4: no elements satisfy the condition
|
52
|
+
int source_none_even[] = {1, 3, 5, 7, 9};
|
53
|
+
int destination_none_even[5];
|
54
|
+
size_t num_filtered_none_even = filter(source_none_even, 5, sizeof(int), destination_none_even, 5, is_even_condition);
|
55
|
+
assert(num_filtered_none_even == 0);
|
56
|
+
|
57
|
+
printf("All test cases passed!\n");
|
58
|
+
return 0;
|
59
|
+
}
|
@@ -0,0 +1,39 @@
|
|
1
|
+
#include "../foundationallib.h"
|
2
|
+
#include <assert.h>
|
3
|
+
#include <stdio.h>
|
4
|
+
|
5
|
+
// Define the filter_int function
|
6
|
+
typedef size_t (*filter_int_fn)(int *, size_t, int *, int (*)(int));
|
7
|
+
|
8
|
+
// Define the condition function
|
9
|
+
int is_even_condition(int x) { return (x % 2 == 0); }
|
10
|
+
|
11
|
+
// Test cases
|
12
|
+
void test_filter_int(filter_int_fn filter_int)
|
13
|
+
{
|
14
|
+
int source[] = {1, 2, 3, 4, 5};
|
15
|
+
int destination[5];
|
16
|
+
|
17
|
+
// Test case 1: Test with even condition
|
18
|
+
size_t num_filtered = filter_int(source, 5, destination, is_even_condition);
|
19
|
+
assert(num_filtered == 2);
|
20
|
+
assert(destination[0] == 2);
|
21
|
+
assert(destination[1] == 4);
|
22
|
+
|
23
|
+
// Test case 2: Test with odd condition
|
24
|
+
size_t num_filtered_odd = filter_int(source, 5, destination, [](int x) { return (x % 2 != 0); });
|
25
|
+
assert(num_filtered_odd == 3);
|
26
|
+
assert(destination[0] == 1);
|
27
|
+
assert(destination[1] == 3);
|
28
|
+
assert(destination[2] == 5);
|
29
|
+
}
|
30
|
+
|
31
|
+
int main()
|
32
|
+
{
|
33
|
+
// Run the test cases
|
34
|
+
test_filter_int(filter_int);
|
35
|
+
|
36
|
+
printf("All test cases passed!\n");
|
37
|
+
|
38
|
+
return 0;
|
39
|
+
}
|
@@ -0,0 +1,48 @@
|
|
1
|
+
#include "../foundationallib.h"
|
2
|
+
#include <assert.h>
|
3
|
+
#include <stdio.h>
|
4
|
+
#include <string.h>
|
5
|
+
|
6
|
+
FOUNDATIONAL_LIB_FUNC ssize_t find_first_of(const char *str, const char *char_set)
|
7
|
+
{
|
8
|
+
for (size_t i = 0; str[i] != '\0'; i++)
|
9
|
+
{
|
10
|
+
for (size_t j = 0; char_set[j] != '\0'; j++)
|
11
|
+
{
|
12
|
+
if (str[i] == char_set[j])
|
13
|
+
{
|
14
|
+
return i;
|
15
|
+
}
|
16
|
+
}
|
17
|
+
}
|
18
|
+
return -1;
|
19
|
+
}
|
20
|
+
|
21
|
+
void test_find_first_of()
|
22
|
+
{
|
23
|
+
const char *str = "Hello, World!";
|
24
|
+
|
25
|
+
// Test cases for finding individual characters
|
26
|
+
assert(find_first_of(str, "aeiou") == 1); // 'e' at index 1
|
27
|
+
assert(find_first_of(str, "l") == 2); // 'l' at index 2
|
28
|
+
assert(find_first_of(str, "xy") == -1); // None of 'x' or 'y' found
|
29
|
+
|
30
|
+
// Test cases for empty string and char_set
|
31
|
+
assert(find_first_of("", "abc") == -1); // Empty string
|
32
|
+
assert(find_first_of(str, "") == -1); // Empty char_set
|
33
|
+
|
34
|
+
// Test cases for all characters in the string
|
35
|
+
assert(find_first_of(str, "Hed!") == 0); // 'H' at index 0
|
36
|
+
assert(find_first_of(str, "d!!") == 7); // 'd' at index 7
|
37
|
+
|
38
|
+
// Test cases for not finding any characters
|
39
|
+
assert(find_first_of(str, "123") == -1); // None of '1', '2', '3' found
|
40
|
+
|
41
|
+
printf("All test cases passed!\n");
|
42
|
+
}
|
43
|
+
|
44
|
+
int main()
|
45
|
+
{
|
46
|
+
test_find_first_of();
|
47
|
+
return 0;
|
48
|
+
}
|
@@ -0,0 +1,48 @@
|
|
1
|
+
#include "../foundationallib.h"
|
2
|
+
#include <assert.h>
|
3
|
+
#include <stdio.h>
|
4
|
+
|
5
|
+
FOUNDATIONAL_LIB_FUNC ssize_t find_last_of(const char *str, const char *char_set)
|
6
|
+
{
|
7
|
+
if (str == NULL || char_set == NULL)
|
8
|
+
{
|
9
|
+
return -1;
|
10
|
+
}
|
11
|
+
|
12
|
+
ssize_t last_index = -1;
|
13
|
+
|
14
|
+
for (const char *ptr = str; *ptr != '\0'; ptr++)
|
15
|
+
{
|
16
|
+
const char *found = strchr(char_set, *ptr);
|
17
|
+
if (found != NULL)
|
18
|
+
{
|
19
|
+
last_index = ptr - str;
|
20
|
+
}
|
21
|
+
}
|
22
|
+
|
23
|
+
return last_index;
|
24
|
+
}
|
25
|
+
|
26
|
+
void test_find_last_of()
|
27
|
+
{
|
28
|
+
// Test cases
|
29
|
+
assert(find_last_of("hello", "abc") == -1); // No matching characters
|
30
|
+
assert(find_last_of("hello", "el") == 4); // 'o' is the last matching character
|
31
|
+
assert(find_last_of("hello", "ohl") == 4); // 'o' is the last matching character
|
32
|
+
assert(find_last_of("hello", "ox") == -1); // No matching characters
|
33
|
+
assert(find_last_of("hello", "") == -1); // Empty char_set
|
34
|
+
|
35
|
+
// Edge cases
|
36
|
+
assert(find_last_of("", "abc") == -1); // Empty string
|
37
|
+
assert(find_last_of(NULL, "abc") == -1); // Null string
|
38
|
+
assert(find_last_of("hello", NULL) == -1); // Null char_set
|
39
|
+
assert(find_last_of(NULL, NULL) == -1); // Null string and char_set
|
40
|
+
}
|
41
|
+
|
42
|
+
int main()
|
43
|
+
{
|
44
|
+
test_find_last_of();
|
45
|
+
printf("All tests passed!\n");
|
46
|
+
|
47
|
+
return 0;
|
48
|
+
}
|
@@ -0,0 +1,55 @@
|
|
1
|
+
#include "../foundationallib.h"
|
2
|
+
#include <assert.h>
|
3
|
+
#include <stddef.h>
|
4
|
+
|
5
|
+
FOUNDATIONAL_LIB_FUNC int find_max_int_in_array(const int *array, size_t size)
|
6
|
+
{
|
7
|
+
if (array == NULL || size == 0)
|
8
|
+
{
|
9
|
+
return 0; // Return 0 if the array is empty or NULL
|
10
|
+
}
|
11
|
+
|
12
|
+
int max = array[0];
|
13
|
+
for (size_t i = 1; i < size; i++)
|
14
|
+
{
|
15
|
+
if (array[i] > max)
|
16
|
+
{
|
17
|
+
max = array[i]; // Update max if a larger element is found
|
18
|
+
}
|
19
|
+
}
|
20
|
+
|
21
|
+
return max;
|
22
|
+
}
|
23
|
+
|
24
|
+
int main()
|
25
|
+
{
|
26
|
+
// Test case 1: array with positive integers
|
27
|
+
int test1[] = {5, 10, 3, 8, 15};
|
28
|
+
assert(find_max_int_in_array(test1, 5) == 15);
|
29
|
+
|
30
|
+
// Test case 2: array with negative integers
|
31
|
+
int test2[] = {-5, -10, -3, -8, -15};
|
32
|
+
assert(find_max_int_in_array(test2, 5) == -3);
|
33
|
+
|
34
|
+
// Test case 3: array with a single element
|
35
|
+
int test3[] = {100};
|
36
|
+
assert(find_max_int_in_array(test3, 1) == 100);
|
37
|
+
|
38
|
+
// Test case 4: array with all elements equal
|
39
|
+
int test4[] = {7, 7, 7, 7};
|
40
|
+
assert(find_max_int_in_array(test4, 4) == 7);
|
41
|
+
|
42
|
+
// Test case 5: empty array
|
43
|
+
int *test5 = NULL;
|
44
|
+
assert(find_max_int_in_array(test5, 0) == 0);
|
45
|
+
|
46
|
+
// Test case 6: array with one big number
|
47
|
+
int test6[] = {9999999};
|
48
|
+
assert(find_max_int_in_array(test6, 1) == 9999999);
|
49
|
+
|
50
|
+
// Test case 7: array with one small number
|
51
|
+
int test7[] = {-9999999};
|
52
|
+
assert(find_max_int_in_array(test7, 1) == -9999999);
|
53
|
+
|
54
|
+
return 0;
|
55
|
+
}
|
@@ -0,0 +1,58 @@
|
|
1
|
+
#include "../foundationallib.h"
|
2
|
+
|
3
|
+
#include <assert.h>
|
4
|
+
#include <stddef.h>
|
5
|
+
#include <stdio.h>
|
6
|
+
int main()
|
7
|
+
{
|
8
|
+
// Test case 1: Minimum at the beginning of the array
|
9
|
+
{
|
10
|
+
int arr[] = {1, 2, 3, 4, 5};
|
11
|
+
size_t size = sizeof(arr) / sizeof(arr[0]);
|
12
|
+
int min = find_min_int_in_array(arr, size);
|
13
|
+
assert(min == 1);
|
14
|
+
}
|
15
|
+
|
16
|
+
// Test case 2: Minimum at the end of the array
|
17
|
+
{
|
18
|
+
int arr[] = {5, 4, 3, 2, 1};
|
19
|
+
size_t size = sizeof(arr) / sizeof(arr[0]);
|
20
|
+
int min = find_min_int_in_array(arr, size);
|
21
|
+
assert(min == 1);
|
22
|
+
}
|
23
|
+
|
24
|
+
// Test case 3: Minimum in the middle of the array
|
25
|
+
{
|
26
|
+
int arr[] = {5, 4, 1, 2, 3};
|
27
|
+
size_t size = sizeof(arr) / sizeof(arr[0]);
|
28
|
+
int min = find_min_int_in_array(arr, size);
|
29
|
+
assert(min == 1);
|
30
|
+
}
|
31
|
+
|
32
|
+
// Test case 4: Array with only one element
|
33
|
+
{
|
34
|
+
int arr[] = {5};
|
35
|
+
size_t size = sizeof(arr) / sizeof(arr[0]);
|
36
|
+
int min = find_min_int_in_array(arr, size);
|
37
|
+
assert(min == 5);
|
38
|
+
}
|
39
|
+
|
40
|
+
// Test case 5: Array with negative numbers
|
41
|
+
{
|
42
|
+
int arr[] = {-5, -3, -1, -2, -4};
|
43
|
+
size_t size = sizeof(arr) / sizeof(arr[0]);
|
44
|
+
int min = find_min_int_in_array(arr, size);
|
45
|
+
assert(min == -5);
|
46
|
+
}
|
47
|
+
|
48
|
+
// Test case 6: Array with duplicate minimum elements
|
49
|
+
{
|
50
|
+
int arr[] = {3, 1, 2, 1, 4};
|
51
|
+
size_t size = sizeof(arr) / sizeof(arr[0]);
|
52
|
+
int min = find_min_int_in_array(arr, size);
|
53
|
+
assert(min == 1);
|
54
|
+
}
|
55
|
+
|
56
|
+
printf("All test cases passed!\n");
|
57
|
+
return 0;
|
58
|
+
}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
#include "../foundationallib.h"
|
2
|
+
#include <assert.h>
|
3
|
+
|
4
|
+
FOUNDATIONAL_LIB_FUNC char first_non_repeating_char(const char *str)
|
5
|
+
{
|
6
|
+
int charCount[256] = {0};
|
7
|
+
|
8
|
+
for (int i = 0; str[i] != '\0'; i++)
|
9
|
+
{
|
10
|
+
charCount[(int)str[i]]++;
|
11
|
+
}
|
12
|
+
|
13
|
+
for (int i = 0; str[i] != '\0'; i++)
|
14
|
+
{
|
15
|
+
if (charCount[(int)str[i]] == 1)
|
16
|
+
{
|
17
|
+
return str[i];
|
18
|
+
}
|
19
|
+
}
|
20
|
+
|
21
|
+
return '\0';
|
22
|
+
}
|
23
|
+
|
24
|
+
int main()
|
25
|
+
{
|
26
|
+
// Test cases for the first_non_repeating_char function
|
27
|
+
assert(first_non_repeating_char("") == '\0');
|
28
|
+
assert(first_non_repeating_char("a") == 'a');
|
29
|
+
assert(first_non_repeating_char("aa") == '\0');
|
30
|
+
assert(first_non_repeating_char("leetcode") == 'l');
|
31
|
+
assert(first_non_repeating_char("loveleetcode") == 'v');
|
32
|
+
|
33
|
+
// Additional test cases
|
34
|
+
assert(first_non_repeating_char("hello") == 'h');
|
35
|
+
assert(first_non_repeating_char("helloworld") == 'e');
|
36
|
+
assert(first_non_repeating_char("abcdefghijklmnopqrstuvwxyz") == 'a');
|
37
|
+
assert(first_non_repeating_char("aabbccddeeffgghhii") == '\0');
|
38
|
+
|
39
|
+
printf("All tests passed!\n");
|
40
|
+
|
41
|
+
return 0;
|
42
|
+
}
|
@@ -0,0 +1,68 @@
|
|
1
|
+
#include "../foundationallib.h"
|
2
|
+
#include <assert.h>
|
3
|
+
#include <stdio.h>
|
4
|
+
#include <stdlib.h>
|
5
|
+
#include <string.h>
|
6
|
+
|
7
|
+
// The function to be tested
|
8
|
+
char *format_string(const char *format, ...);
|
9
|
+
|
10
|
+
// Test for basic functionality
|
11
|
+
void test_basic_formatting()
|
12
|
+
{
|
13
|
+
char *result = format_string("{}", "test");
|
14
|
+
assert(strcmp(result, "test") == 0);
|
15
|
+
free(result);
|
16
|
+
}
|
17
|
+
|
18
|
+
// Test for multiple curly braces
|
19
|
+
void test_multiple_curly_braces()
|
20
|
+
{
|
21
|
+
char *result = format_string("{0} {} {1}", "test1", "test2");
|
22
|
+
assert(strcmp(result, "test1 test2") == 0);
|
23
|
+
free(result);
|
24
|
+
}
|
25
|
+
|
26
|
+
// Test for empty format string
|
27
|
+
void test_empty_format_string()
|
28
|
+
{
|
29
|
+
char *result = format_string("", "test");
|
30
|
+
assert(strcmp(result, "") == 0);
|
31
|
+
free(result);
|
32
|
+
}
|
33
|
+
|
34
|
+
// Test for invalid format string
|
35
|
+
void test_invalid_format_string()
|
36
|
+
{
|
37
|
+
char *result = format_string("{1} {", "test");
|
38
|
+
assert(result == NULL);
|
39
|
+
}
|
40
|
+
|
41
|
+
// Test for large number of arguments
|
42
|
+
void test_large_number_of_arguments()
|
43
|
+
{
|
44
|
+
char *result = format_string("{0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12} {13} {14} {15} {16} {17} {18} {19} {20} {21} {22} {23} {24} {25} {26} {27} {28} {29} {30} {31} {32} {33} {34} {35} {36} {37} {38} {39} {40} {41} {42} {43} {44} {45} {46} {47} {48} {49} {50} {51} {52} {53} {54} {55} {56} {57} {58} {59} {60} {61} {62} {63} {64} {65} {66} {67} {68} {69} {70} {71} {72} {73} {74} {75} {76} {77} {78} {79} {80} {81} {82} {83} {84} {85} {86} {87} {88} {89} {90} {91} {92} {93} {94} "
|
45
|
+
"{95} {96} {97} {98} {99} {100} {101} {102} {103} {104} {105} {106} {107} {108} {109} {110} {111} {112} {113} {114} {115} {116} {117} {118} {119} {120} {121} {122} {123} {124} {125} {126} {127} {128} {129} {130} {131} {132} {133} {134} {135} {136} {137} {138} {139} {140} {141} {142} {143} {144} {145} {146} {147} {148} {149} {150} {151} {152} {153} {154} {155} {156} {157} {158} {159} {160} {161} {162} {163} {164} {165} {166} {167} {168} {169} {170} {171} {172} "
|
46
|
+
"{173} {174} {175} {176} {177} {178} {179} {180} {181} {182} {183} {184} {185} {186} {187} {188} {189} {190} {191} {192} {193} {194} {195} {196} {197} {198} {199} {200}",
|
47
|
+
"test0", "test1", "test2", "test3", "test4", "test5", "test6", "test7", "test8", "test9", "test10", "test11", "test12", "test13", "test14", "test15", "test16", "test17", "test18", "test19", "test20", "test21", "test22", "test23", "test24", "test25", "test26", "test27", "test28", "test29", "test30", "test31", "test32", "test33", "test34", "test35", "test36", "test37", "test38", "test39", "test40", "test41", "test42", "test43", "test44", "test45", "test46",
|
48
|
+
"test47", "test48", "test49", "test50", "test51", "test52", "test53", "test54", "test55", "test56", "test57", "test58", "test59", "test60", "test61", "test62", "test63", "test64", "test65", "test66", "test67", "test68", "test69", "test70", "test71", "test72", "test73", "test74", "test75", "test76", "test77", "test78", "test79", "test80", "test81", "test82", "test83", "test84", "test85", "test86", "test87", "test88", "test89", "test90", "test91", "test92",
|
49
|
+
"test93", "test94", "test95", "test96", "test97", "test98", "test99", "test100", "test101", "test102", "test103", "test104", "test105", "test106", "test107", "test108", "test109", "test110", "test111", "test112", "test113", "test114", "test115", "test116", "test117", "test118", "test119", "test120", "test121", "test122", "test123", "test124", "test125", "test126", "test127", "test128", "test129", "test130", "test131", "test132", "test133", "test134", "test135",
|
50
|
+
"test136", "test137", "test138", "test139", "test140", "test141", "test142", "test143", "test144", "test145", "test146", "test147", "test148", "test149", "test150", "test151", "test152", "test153", "test154", "test155", "test156", "test157", "test158", "test159", "test160", "test161", "test162", "test163", "test164", "test165", "test166", "test167", "test168", "test169", "test170", "test171", "test172", "test173", "test174", "test175", "test176", "test177",
|
51
|
+
"test178", "test179", "test180", "test181", "test182", "test183", "test184", "test185", "test186", "test187", "test188", "test189", "test190", "test191", "test192", "test193", "test194", "test195", "test196", "test197", "test198", "test199", "test200");
|
52
|
+
assert(strcmp(result, "test0 test1 test2 test3 test4 test5 test6 test7 test8 test9 test10 test11 test12 test13 test14 test15 test16 test17 test18 test19 test20 test21 test22 test23 test24 test25 test26 test27 test28 test29 test30 test31 test32 test33 test34 test35 test36 test37 test38 test39 test40 test41 test42 test43 test44 test45 test46 test47 test48 test49 test50 test51 test52 test53 test54 test55 test56 test57 test58 test59 test60 test61 test62 test63 test64 test65 test66 test67 "
|
53
|
+
"test68 test69 test70 test71 test72 test73 test74 test75 test76 test77 test78 test79 test80 test81 test82 test83 test84 test85 test86 test87 test88 test89 test90 test91 test92 test93 test94 test95 test96 test97 test98 test99 test100 test101 test102 test103 test104 test105 test106 test107 test108 test109 test110 test111 test112 test113 test114 test115 test116 test117 test118 test119 test120 test121 test122 test123 test124 test125 test126 test127 test128 test129 test130 "
|
54
|
+
"test131 test132 test133 test134 test135 test136 test137 test138 test139 test140 test141 test142 test143 test144 test145 test146 test147 test148 test149 test150 test151 test152 test153 test154 test155 test156 test157 test158 test159 test160 test161 test162 test163 test164 test165 test166 test167 test168 test169 test170 test171 test172 test173 test174 test175 test176 test177 test178 test179 test180 test181 test182 test183 test184 test185 test186 test187 test188 test189 "
|
55
|
+
"test190 test191 test192 test193 test194 test195 test196 test197 test198 test199 test200") == 0);
|
56
|
+
free(result);
|
57
|
+
}
|
58
|
+
|
59
|
+
int main()
|
60
|
+
{
|
61
|
+
test_basic_formatting();
|
62
|
+
test_multiple_curly_braces();
|
63
|
+
test_empty_format_string();
|
64
|
+
test_invalid_format_string();
|
65
|
+
test_large_number_of_arguments();
|
66
|
+
printf("All tests passed!\n");
|
67
|
+
return 0;
|
68
|
+
}
|
@@ -0,0 +1,63 @@
|
|
1
|
+
#include "../foundationallib.h"
|
2
|
+
#include <assert.h>
|
3
|
+
#include <stdlib.h>
|
4
|
+
|
5
|
+
// Function to be tested
|
6
|
+
void free_array(void **array, size_t len)
|
7
|
+
{
|
8
|
+
for (size_t i = 0; i < len; i++)
|
9
|
+
{
|
10
|
+
free(array[i]);
|
11
|
+
}
|
12
|
+
free(array);
|
13
|
+
}
|
14
|
+
|
15
|
+
// Test cases
|
16
|
+
void test_free_array_null_array()
|
17
|
+
{
|
18
|
+
void **array = NULL;
|
19
|
+
free_array(array, 0);
|
20
|
+
// No assertion, just making sure it doesn't crash
|
21
|
+
}
|
22
|
+
|
23
|
+
void test_free_array_empty_array()
|
24
|
+
{
|
25
|
+
void **array = malloc(0);
|
26
|
+
free_array(array, 0);
|
27
|
+
// No assertion, just making sure it doesn't crash
|
28
|
+
}
|
29
|
+
|
30
|
+
void test_free_array_single_element()
|
31
|
+
{
|
32
|
+
void *element = malloc(sizeof(int));
|
33
|
+
void **array = malloc(sizeof(void *));
|
34
|
+
array[0] = element;
|
35
|
+
|
36
|
+
free_array(array, 1);
|
37
|
+
assert(array[0] == NULL);
|
38
|
+
free(array);
|
39
|
+
}
|
40
|
+
|
41
|
+
void test_free_array_multiple_elements()
|
42
|
+
{
|
43
|
+
void *element1 = malloc(sizeof(int));
|
44
|
+
void *element2 = malloc(sizeof(int));
|
45
|
+
void **array = malloc(2 * sizeof(void *));
|
46
|
+
array[0] = element1;
|
47
|
+
array[1] = element2;
|
48
|
+
|
49
|
+
free_array(array, 2);
|
50
|
+
assert(array[0] == NULL);
|
51
|
+
assert(array[1] == NULL);
|
52
|
+
free(array);
|
53
|
+
}
|
54
|
+
|
55
|
+
int main()
|
56
|
+
{
|
57
|
+
test_free_array_null_array();
|
58
|
+
test_free_array_empty_array();
|
59
|
+
test_free_array_single_element();
|
60
|
+
test_free_array_multiple_elements();
|
61
|
+
|
62
|
+
return 0;
|
63
|
+
}
|
@@ -0,0 +1,50 @@
|
|
1
|
+
#include "../foundationallib.h"
|
2
|
+
|
3
|
+
#include <assert.h>
|
4
|
+
#include <stdlib.h>
|
5
|
+
|
6
|
+
void free_string_array(char **array, size_t len)
|
7
|
+
{
|
8
|
+
if (array == NULL)
|
9
|
+
return;
|
10
|
+
|
11
|
+
for (size_t i = 0; i < len; i++)
|
12
|
+
{
|
13
|
+
free(array[i]);
|
14
|
+
}
|
15
|
+
|
16
|
+
free(array);
|
17
|
+
}
|
18
|
+
|
19
|
+
int main()
|
20
|
+
{
|
21
|
+
// Test case 1: array is NULL
|
22
|
+
char **test1 = NULL;
|
23
|
+
free_string_array(test1, 0);
|
24
|
+
|
25
|
+
// Test case 2: len is 0
|
26
|
+
char **test2 = (char **)malloc(0 * sizeof(char *));
|
27
|
+
free_string_array(test2, 0);
|
28
|
+
|
29
|
+
// Test case 3: len is 1
|
30
|
+
char **test3 = (char **)malloc(1 * sizeof(char *));
|
31
|
+
test3[0] = (char *)malloc(6);
|
32
|
+
test3[0] = "Hello";
|
33
|
+
free_string_array(test3, 1);
|
34
|
+
assert(test3 == NULL); // Check if test3 is NULL after freeing
|
35
|
+
|
36
|
+
// Test case 4: len is greater than 1
|
37
|
+
char **test4 = (char **)malloc(3 * sizeof(char *));
|
38
|
+
test4[0] = (char *)malloc(6);
|
39
|
+
test4[1] = (char *)malloc(6);
|
40
|
+
test4[2] = (char *)malloc(6);
|
41
|
+
test4[0] = "Hello";
|
42
|
+
test4[1] = "World";
|
43
|
+
test4[2] = "!";
|
44
|
+
free_string_array(test4, 3);
|
45
|
+
assert(test4 == NULL); // Check if test4 is NULL after freeing
|
46
|
+
|
47
|
+
// Add more test cases for different corner cases
|
48
|
+
|
49
|
+
return 0;
|
50
|
+
}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
#include "../foundationallib.h"
|
2
|
+
#include <assert.h>
|
3
|
+
#include <stdio.h>
|
4
|
+
int main()
|
5
|
+
{
|
6
|
+
char *keys1[] = {"key1", "key2", "key3"};
|
7
|
+
char *keys2[] = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j"};
|
8
|
+
|
9
|
+
// Test case 1: Delete keys from a frozen dictionary with 3 keys
|
10
|
+
frozen_dict_del_keys(keys1);
|
11
|
+
|
12
|
+
// Add assertion to check the result
|
13
|
+
assert(keys1[0] == NULL);
|
14
|
+
assert(keys1[1] == NULL);
|
15
|
+
assert(keys1[2] == NULL);
|
16
|
+
|
17
|
+
// Test case 2: Delete keys from a frozen dictionary with 10 keys
|
18
|
+
frozen_dict_del_keys(keys2);
|
19
|
+
|
20
|
+
// Add assertion to check the result
|
21
|
+
for (int i = 0; i < 10; i++)
|
22
|
+
{
|
23
|
+
assert(keys2[i] == NULL);
|
24
|
+
}
|
25
|
+
|
26
|
+
printf("All test cases passed\n");
|
27
|
+
return 0;
|
28
|
+
}
|