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,741 @@
|
|
1
|
+
#!/usr/bin/ruby
|
2
|
+
|
3
|
+
require "colored"
|
4
|
+
require "rouge"
|
5
|
+
|
6
|
+
# make some nice lexed html
|
7
|
+
source = File.read("HEADERS_ONLY_FUNCTIONS.h").gsub("static inline", "").split("\n")
|
8
|
+
len = source.size
|
9
|
+
bads = []
|
10
|
+
bads = source.grep(/sort|print_|concatenate|equal|is_/)
|
11
|
+
source -= bads
|
12
|
+
source = source.join("\n") + "\n\n"
|
13
|
+
|
14
|
+
C_CODE = <<C_CODE
|
15
|
+
|
16
|
+
/*
|
17
|
+
* One is more capable of using a computer in general this way,
|
18
|
+
* with less power usage, quicker compilation time, interactive
|
19
|
+
* script creation and maximally-quick program execution.
|
20
|
+
*
|
21
|
+
* The best of all worlds, truly.
|
22
|
+
*/
|
23
|
+
void nice_easy_c_code()
|
24
|
+
{
|
25
|
+
const char *file = "Line one\\nLine two line two\\nLine 3\\n";
|
26
|
+
size_t size;
|
27
|
+
char **lines = split(file, &size, "\\n", 0 /* max count */, 1 /* keep delims in? */);
|
28
|
+
|
29
|
+
assert(size == 4);
|
30
|
+
assert(equal_strings("Line one\\n", lines[0]));
|
31
|
+
assert(equal_strings("Line two line two\\n", lines[1]));
|
32
|
+
assert(equal_strings("Line 3\\n", lines[2]));
|
33
|
+
assert(equal_strings("", lines[3]));
|
34
|
+
|
35
|
+
/* See how nice this C code is? It's so easy to do things. */
|
36
|
+
|
37
|
+
for (size_t i = 0; i < size; ++i)
|
38
|
+
{
|
39
|
+
/* Strip the line, get rid of newline */
|
40
|
+
char *stripped = strip(lines[i]);
|
41
|
+
free(lines[i]);
|
42
|
+
|
43
|
+
/* Turn it into printable json */
|
44
|
+
char *json = string_to_json(stripped);
|
45
|
+
free(stripped);
|
46
|
+
|
47
|
+
/* Show it on screen */
|
48
|
+
puts(json);
|
49
|
+
free(json);
|
50
|
+
}
|
51
|
+
|
52
|
+
free(lines);
|
53
|
+
}
|
54
|
+
|
55
|
+
|
56
|
+
/* A more UNIX-centric example - but don't worry, Foundationallib is very cross-platform. */
|
57
|
+
void do_things_on_a_unix_system_in_a_more_powerful_sort_of_c()
|
58
|
+
{
|
59
|
+
#ifdef __unix__
|
60
|
+
size_t size;
|
61
|
+
|
62
|
+
char *output = backticks("cd /tmp; pwd", &size);
|
63
|
+
assert(equal_strings(output, "/tmp\\n"));
|
64
|
+
|
65
|
+
char *output_replicated = (char *)replicate(output, FOUNDATIONAL_LIB_STRLEN(output) - 1 /* omit newline here */, sizeof(char *), 100);
|
66
|
+
|
67
|
+
puts(output_replicated);
|
68
|
+
|
69
|
+
free(output);
|
70
|
+
free(output_replicated);
|
71
|
+
|
72
|
+
puts("Getting input works (popen) works - output is '/tmp' on UNIX.");
|
73
|
+
|
74
|
+
/* See how nice this C code is? It's so easy to do things. */
|
75
|
+
|
76
|
+
if (file_exists("/usr/share/dict/words"))
|
77
|
+
{
|
78
|
+
puts("Reading words file into array.");
|
79
|
+
size_t lines;
|
80
|
+
|
81
|
+
// Lines have "\\n" at end.
|
82
|
+
char **words_file_lines = read_file_into_array("/usr/share/dict/words", "\\n", &lines);
|
83
|
+
assert(lines > 1000);
|
84
|
+
|
85
|
+
printf("/usr/share/dict/words is %zu lines and we can efficiently play around with it in a more easy fashion than Python.\\n", lines);
|
86
|
+
puts("Shuffling words");
|
87
|
+
|
88
|
+
// Shuffle all 100,000+ (or however many is in your words file) words in the dictionary in place.
|
89
|
+
shuffle_strings_in_place(words_file_lines, lines);
|
90
|
+
|
91
|
+
const size_t number_of_random_words_to_show_on_screen = rand_number_from_range_inclusive_unsigned(50, 120);
|
92
|
+
|
93
|
+
for (size_t i = 0; i < number_of_random_words_to_show_on_screen; ++i)
|
94
|
+
{
|
95
|
+
// Get rid of the newline.
|
96
|
+
char *word2 = strip(words_file_lines[i]);
|
97
|
+
|
98
|
+
// Make the words ready to be printed to stdout.
|
99
|
+
char *word3 = string_to_json(word2);
|
100
|
+
free(word2);
|
101
|
+
|
102
|
+
// Print the word to stdout
|
103
|
+
printf("Randomly chosen word is %s.\\n", word3);
|
104
|
+
free(word3);
|
105
|
+
|
106
|
+
// No need to free the words, you can use free_array() or free_string_array()
|
107
|
+
}
|
108
|
+
free_string_array(words_file_lines, lines);
|
109
|
+
}
|
110
|
+
#endif
|
111
|
+
}
|
112
|
+
|
113
|
+
C_CODE
|
114
|
+
|
115
|
+
#'
|
116
|
+
C_CODE.gsub! /^.+$/ do |q|
|
117
|
+
q.sub(/\s+$/, "")
|
118
|
+
end
|
119
|
+
|
120
|
+
C_CODE.gsub!(/^\s+/) do |i|
|
121
|
+
# "\t" * (i.size / 4)
|
122
|
+
" " * i.size
|
123
|
+
end
|
124
|
+
|
125
|
+
C_CODE2 = <<EOF
|
126
|
+
/* Networking features are disabled by default. Use -DFOUNDATIONAL_LIB_NETWORK_FUNCTIONS_ENABLED=1 */
|
127
|
+
|
128
|
+
|
129
|
+
/* Example - Download all the popular sites anywhere. */
|
130
|
+
void test_downloading()
|
131
|
+
{
|
132
|
+
const int byte_limit = 0;
|
133
|
+
const int how_many_to_download = 100;
|
134
|
+
|
135
|
+
for (int i = 0; i < 5; ++i)
|
136
|
+
{
|
137
|
+
size_t size;
|
138
|
+
size_t alloc_size;
|
139
|
+
const char *site = "https://www.google.com/";
|
140
|
+
char *string;
|
141
|
+
download_website(site, &string, &size, &alloc_size, 0 /* byte limit - no limit for how much (0) */, NULL /* ua - pretend to be chrome by default. */);
|
142
|
+
printf("size is %zu\\n", FOUNDATIONAL_LIB_STRLEN(string));
|
143
|
+
free(string);
|
144
|
+
}
|
145
|
+
|
146
|
+
// Array of 100 websites
|
147
|
+
const char *websites[100] = {
|
148
|
+
"https://www.google.com",
|
149
|
+
"https://www.youtube.com",
|
150
|
+
"https://www.facebook.com",
|
151
|
+
"https://www.twitter.com",
|
152
|
+
"https://www.instagram.com",
|
153
|
+
"https://www.linkedin.com",
|
154
|
+
"https://www.reddit.com",
|
155
|
+
"https://www.pinterest.com",
|
156
|
+
"https://www.tumblr.com",
|
157
|
+
"https://www.snapchat.com",
|
158
|
+
"https://www.twitch.tv",
|
159
|
+
"https://www.netflix.com",
|
160
|
+
"https://www.amazon.com",
|
161
|
+
"https://www.ebay.com",
|
162
|
+
"https://www.paypal.com",
|
163
|
+
"https://www.microsoft.com",
|
164
|
+
"https://www.apple.com",
|
165
|
+
"https://www.ibm.com",
|
166
|
+
"https://www.oracle.com",
|
167
|
+
"https://www.cnn.com",
|
168
|
+
"https://www.bbc.com",
|
169
|
+
"https://www.nytimes.com",
|
170
|
+
"https://www.washingtonpost.com",
|
171
|
+
"https://www.nationalgeographic.com",
|
172
|
+
"https://www.wikipedia.org",
|
173
|
+
"https://www.imdb.com",
|
174
|
+
"https://www.forbes.com",
|
175
|
+
"https://www.bloomberg.com",
|
176
|
+
"https://www.wsj.com",
|
177
|
+
"https://www.cnbc.com",
|
178
|
+
"https://www.espn.com",
|
179
|
+
"https://www.nba.com",
|
180
|
+
"https://www.nfl.com",
|
181
|
+
"https://www.mlb.com",
|
182
|
+
"https://www.nhl.com",
|
183
|
+
"https://www.etsy.com",
|
184
|
+
"https://www.walmart.com",
|
185
|
+
"https://www.target.com",
|
186
|
+
"https://www.bestbuy.com",
|
187
|
+
"https://www.craigslist.org",
|
188
|
+
"https://www.reddit.com/r/all",
|
189
|
+
"https://www.quora.com",
|
190
|
+
"https://www.stackoverflow.com",
|
191
|
+
"https://www.github.com",
|
192
|
+
"https://www.gitlab.com",
|
193
|
+
"https://www.bitbucket.org",
|
194
|
+
"https://www.ubuntu.com",
|
195
|
+
"https://www.debian.org",
|
196
|
+
"https://www.centos.org",
|
197
|
+
"https://www.docker.com",
|
198
|
+
"https://www.hub.docker.com",
|
199
|
+
"https://www.aws.amazon.com",
|
200
|
+
"https://www.azure.microsoft.com",
|
201
|
+
"https://www.gcp.google.com",
|
202
|
+
"https://www.heroku.com",
|
203
|
+
"https://www.wordpress.org",
|
204
|
+
"https://www.blogger.com",
|
205
|
+
"https://www.medium.com",
|
206
|
+
"https://www.trello.com",
|
207
|
+
"https://www.openai.com",
|
208
|
+
"https://www.slack.com",
|
209
|
+
"https://www.zoom.us",
|
210
|
+
"https://www.skype.com",
|
211
|
+
"https://www.whatsapp.com",
|
212
|
+
"https://www.telegram.org",
|
213
|
+
"https://www.viber.com",
|
214
|
+
"https://www.spotify.com",
|
215
|
+
"https://www.apple.com/music",
|
216
|
+
"https://www.soundcloud.com",
|
217
|
+
"https://www.last.fm",
|
218
|
+
"https://www.goodreads.com",
|
219
|
+
"https://www.coursera.org",
|
220
|
+
"https://www.udacity.com",
|
221
|
+
"https://www.edx.org",
|
222
|
+
"https://www.khanacademy.org",
|
223
|
+
"https://www.codecademy.com",
|
224
|
+
"https://www.stackexchange.com",
|
225
|
+
"https://www.aljazeera.com",
|
226
|
+
"https://www.reuters.com",
|
227
|
+
"https://www.apnews.com",
|
228
|
+
"https://www.buzzfeed.com",
|
229
|
+
"https://www.huffpost.com",
|
230
|
+
"https://www.techcrunch.com",
|
231
|
+
"https://www.engadget.com",
|
232
|
+
"https://www.mashable.com",
|
233
|
+
"https://www.vox.com",
|
234
|
+
"https://www.theverge.com",
|
235
|
+
"https://www.polygon.com",
|
236
|
+
"https://www.gamespot.com",
|
237
|
+
"https://www.ign.com",
|
238
|
+
"https://www.ea.com",
|
239
|
+
"https://www.ubisoft.com",
|
240
|
+
"https://www.activision.com",
|
241
|
+
"https://www.riotgames.com",
|
242
|
+
"https://www.nintendo.com",
|
243
|
+
"https://www.playstation.com",
|
244
|
+
"https://www.xbox.com",
|
245
|
+
};
|
246
|
+
|
247
|
+
shuffle_strings_in_place((char **)&websites, 100);
|
248
|
+
char **outputs;
|
249
|
+
size_t *lens;
|
250
|
+
|
251
|
+
puts("Downloading");
|
252
|
+
|
253
|
+
// Pretends to be Chrome by default.
|
254
|
+
download_websites(websites, how_many_to_download, &outputs, &lens,byte_limit, 1);
|
255
|
+
|
256
|
+
puts("Downloaded");
|
257
|
+
|
258
|
+
print_size_t_array(lens, how_many_to_download);
|
259
|
+
|
260
|
+
for (int i = 0; i < how_many_to_download; ++i)
|
261
|
+
{
|
262
|
+
printf("The webpage is %s\\n", outputs[i]);
|
263
|
+
}
|
264
|
+
|
265
|
+
free_string_array(outputs, how_many_to_download);
|
266
|
+
free(lens);
|
267
|
+
}
|
268
|
+
EOF
|
269
|
+
|
270
|
+
#'
|
271
|
+
|
272
|
+
C_CODE2.gsub! /^.+$/ do |q|
|
273
|
+
q.sub(/\s+$/, "")
|
274
|
+
end
|
275
|
+
|
276
|
+
C_CODE2.gsub!(/^\s+/) do |i|
|
277
|
+
# "\t" * (i.size / 4)
|
278
|
+
" " * i.size
|
279
|
+
end
|
280
|
+
|
281
|
+
formatter = Rouge::Formatters::HTML.new
|
282
|
+
|
283
|
+
GLOBAL_FORMATTER = formatter
|
284
|
+
lexer = Rouge::Lexers::C.new
|
285
|
+
GLOBAL_LEXER = lexer
|
286
|
+
body = formatter.format(lexer.lex(source))
|
287
|
+
|
288
|
+
def to_nonbreaking(str)
|
289
|
+
str.gsub! "&nbsp;", " "
|
290
|
+
IO.popen("micro", "w") do |q|
|
291
|
+
q << str
|
292
|
+
end if false
|
293
|
+
#sleep
|
294
|
+
q = str.gsub(/<span class="o">&<\/span><span class="n">nbsp<\/span><span class="p">;(.*?)<\/span>/) do |q|
|
295
|
+
" " + $1 # "DOLLAR_ONE(#{$1})"
|
296
|
+
end
|
297
|
+
|
298
|
+
q.gsub! /( )+/ do |i|
|
299
|
+
count = i.size / 6
|
300
|
+
new_newlines = ""
|
301
|
+
mod = count % 4
|
302
|
+
|
303
|
+
if (mod) != 0
|
304
|
+
new_newlines = "<<#{count}/#{mod}>>".clear + "<br/>" * mod
|
305
|
+
end
|
306
|
+
|
307
|
+
new_newlines + (" " * (count - mod))
|
308
|
+
end
|
309
|
+
|
310
|
+
q.gsub!("<br/><br/>*", "<br/> *")
|
311
|
+
q.gsub!(/<br\/><br\/>(<br\/>)+/, "<br/><br/>")
|
312
|
+
|
313
|
+
q.sub! "/* Show it on screen", " " * 8 + "/* Show it on screen"
|
314
|
+
q.sub! "/* Strip the line", " " * 4 + "/* Strip the line"
|
315
|
+
q.sub! "/* Turn it into", " " * 8 + "/* Turn it into"
|
316
|
+
q.gsub! "<br/> * ", "<br/> *" + " " * 3
|
317
|
+
|
318
|
+
q.gsub!("{<br/><br/>", "{<br/>")
|
319
|
+
q
|
320
|
+
end
|
321
|
+
|
322
|
+
#require 'rouge/themes/github'
|
323
|
+
# require 'rouge/themes/bw'
|
324
|
+
class Theme < Rouge::CSSTheme
|
325
|
+
palette :black => "#1b1d1e"
|
326
|
+
palette :white => "#f8f8f2"
|
327
|
+
palette :blue => "blue"
|
328
|
+
palette :green => "rgb(0, 127, 0)"
|
329
|
+
palette :grey => "#403d3d"
|
330
|
+
palette :light_grey => "#465457"
|
331
|
+
palette :dark_blue => "#5e5d83"
|
332
|
+
palette :violet => "#af87ff"
|
333
|
+
palette :yellow => "#d7d787"
|
334
|
+
palette :red => "red"
|
335
|
+
|
336
|
+
style Comment,
|
337
|
+
Comment::Multiline,
|
338
|
+
Comment::Single, :fg => :dark_blue, :italic => true
|
339
|
+
style Comment::Preproc, :fg => :light_grey, :bold => true
|
340
|
+
style Comment::Special, :fg => :light_grey, :italic => true, :bold => true
|
341
|
+
style Error, :fg => :white, :bg => :grey
|
342
|
+
style Generic::Inserted, :fg => :green
|
343
|
+
style Generic::Deleted, :fg => :red
|
344
|
+
style Generic::Emph, :fg => :black, :italic => true
|
345
|
+
style Generic::Error,
|
346
|
+
Generic::Traceback, :fg => :red
|
347
|
+
style Generic::Heading, :fg => :grey
|
348
|
+
style Generic::Output, :fg => :grey
|
349
|
+
style Generic::Prompt, :fg => :blue
|
350
|
+
style Generic::Strong, :bold => true
|
351
|
+
style Generic::Subheading, :fg => :light_grey
|
352
|
+
style Keyword,
|
353
|
+
Keyword::Declaration, :fg => :red, :bold => true
|
354
|
+
|
355
|
+
style Keyword::Pseudo,
|
356
|
+
Keyword::Constant,
|
357
|
+
Keyword::Reserved,
|
358
|
+
Keyword::Type, :fg => :red, :bold => false
|
359
|
+
style Keyword::Namespace,
|
360
|
+
Operator::Word,
|
361
|
+
Operator, :fg => :white, :bold => true
|
362
|
+
style Literal::Number::Float,
|
363
|
+
Literal::Number::Hex,
|
364
|
+
Literal::Number::Integer::Long,
|
365
|
+
Literal::Number::Integer,
|
366
|
+
Literal::Number::Oct,
|
367
|
+
Literal::Number,
|
368
|
+
Literal::String::Escape, :fg => :violet
|
369
|
+
style Literal::String::Backtick,
|
370
|
+
Literal::String::Char,
|
371
|
+
Literal::String::Doc,
|
372
|
+
Literal::String::Double,
|
373
|
+
Literal::String::Heredoc,
|
374
|
+
Literal::String::Interpol,
|
375
|
+
Literal::String::Other,
|
376
|
+
Literal::String::Regex,
|
377
|
+
Literal::String::Single,
|
378
|
+
Literal::String::Symbol,
|
379
|
+
Literal::String, :fg => :red, :bold => true
|
380
|
+
style Name::Attribute, :fg => :green
|
381
|
+
style Name::Class,
|
382
|
+
Name::Decorator,
|
383
|
+
Name::Exception,
|
384
|
+
Name::Function, :fg => :white, :bold => false
|
385
|
+
style Name::Constant, :fg => :blue
|
386
|
+
style Name::Builtin::Pseudo,
|
387
|
+
Name::Builtin,
|
388
|
+
Name::Entity,
|
389
|
+
Name::Namespace,
|
390
|
+
Name::Variable::Class,
|
391
|
+
Name::Variable::Global,
|
392
|
+
Name::Variable::Instance,
|
393
|
+
Name::Variable,
|
394
|
+
Text::Whitespace, :fg => :white
|
395
|
+
style Name::Label, :fg => :white, :bold => true
|
396
|
+
style Name::Tag, :fg => :white
|
397
|
+
style Text, :fg => :white, :bg => :black
|
398
|
+
end
|
399
|
+
|
400
|
+
class Theme2 < Theme
|
401
|
+
end
|
402
|
+
|
403
|
+
# Get some CSS
|
404
|
+
#css = Rouge::Themes::Base16.mode(:light).render(scope: ".highlight").to_s.gsub("\n", " ")
|
405
|
+
|
406
|
+
css = Theme2.new.render().to_s.gsub("\n", " ")
|
407
|
+
|
408
|
+
File.write "lib.html", "<!DOCTYPE html>
|
409
|
+
<html>
|
410
|
+
<head>
|
411
|
+
<style type='text/css'>
|
412
|
+
body { font-family: Monospace; font-size: 18px; }
|
413
|
+
|
414
|
+
#{css}
|
415
|
+
</style>
|
416
|
+
</head>
|
417
|
+
|
418
|
+
<body>
|
419
|
+
<!--<h1>#{len} functions in library as far:</h1>
|
420
|
+
<h1>My personal philosophy behind this is in the `Articles' folder. It is well worth the read, and it is extremely unequivocal and strong.</h1>-->
|
421
|
+
|
422
|
+
<div class=highlight style='background-color: black;'>
|
423
|
+
#{to_nonbreaking(body.gsub("\n", "<br/>"))}
|
424
|
+
#{"\n<div style='color:white;padding-top:50px;padding-bottom:50px;font-family:Serif;'><center>And many, many more</center></div>"}
|
425
|
+
</div>
|
426
|
+
</body></html>"
|
427
|
+
|
428
|
+
css = Theme.new.render().to_s.gsub("\n", " ")
|
429
|
+
GLOBAL_CSS = css
|
430
|
+
File.write "lib2.html", "<!DOCTYPE html>
|
431
|
+
<html>
|
432
|
+
<head>
|
433
|
+
<style type='text/css'>
|
434
|
+
body { font-family: Monospace; }
|
435
|
+
|
436
|
+
#{css}
|
437
|
+
</style>
|
438
|
+
</head>
|
439
|
+
|
440
|
+
<body>
|
441
|
+
<!--<h1>#{len} functions in library as far:</h1>
|
442
|
+
<h1>My personal philosophy behind this is in the `Articles' folder. It is well worth the read, and it is extremely unequivocal and strong.</h1>-->
|
443
|
+
|
444
|
+
<div class=highlight style='background-color: black;'>
|
445
|
+
<style type=\"text/css\">
|
446
|
+
#{css}
|
447
|
+
</style>
|
448
|
+
#{to_nonbreaking(formatter.format(lexer.lex(C_CODE)).gsub("\n", "<br/>"))}
|
449
|
+
</div>
|
450
|
+
|
451
|
+
</body></html>"
|
452
|
+
|
453
|
+
CSSES = []
|
454
|
+
|
455
|
+
def c(alpha = false)
|
456
|
+
if alpha
|
457
|
+
"rgba(#{(0..255).to_a.sample}, #{(0..255).to_a.sample}, #{(0..255).to_a.sample}, #{rand})"
|
458
|
+
else
|
459
|
+
"rgb(#{(0..255).to_a.sample}, #{(0..255).to_a.sample}, #{(0..255).to_a.sample})"
|
460
|
+
end
|
461
|
+
end
|
462
|
+
|
463
|
+
500.times do
|
464
|
+
class Theme < Rouge::CSSTheme
|
465
|
+
palette :black => c
|
466
|
+
palette :white => c
|
467
|
+
palette :blue => c
|
468
|
+
palette :green => c
|
469
|
+
palette :grey => c
|
470
|
+
palette :light_grey => c
|
471
|
+
palette :dark_blue => c
|
472
|
+
palette :violet => c
|
473
|
+
palette :yellow => c
|
474
|
+
palette :red => c
|
475
|
+
|
476
|
+
style Comment,
|
477
|
+
Comment::Multiline,
|
478
|
+
Comment::Single, :fg => :dark_blue, :italic => true
|
479
|
+
style Comment::Preproc, :fg => :light_grey, :bold => true
|
480
|
+
style Comment::Special, :fg => :light_grey, :italic => true, :bold => true
|
481
|
+
style Error, :fg => :white, :bg => :grey
|
482
|
+
style Generic::Inserted, :fg => :green
|
483
|
+
style Generic::Deleted, :fg => :red
|
484
|
+
style Generic::Emph, :fg => :black, :italic => true
|
485
|
+
style Generic::Error,
|
486
|
+
Generic::Traceback, :fg => :red
|
487
|
+
style Generic::Heading, :fg => :grey
|
488
|
+
style Generic::Output, :fg => :grey
|
489
|
+
style Generic::Prompt, :fg => :blue
|
490
|
+
style Generic::Strong, :bold => true
|
491
|
+
style Generic::Subheading, :fg => :light_grey
|
492
|
+
style Keyword,
|
493
|
+
Keyword::Declaration, :fg => :red, :bold => true
|
494
|
+
|
495
|
+
style Keyword::Pseudo,
|
496
|
+
Keyword::Constant,
|
497
|
+
Keyword::Reserved,
|
498
|
+
Keyword::Type, :fg => :red, :bold => false
|
499
|
+
style Keyword::Namespace,
|
500
|
+
Operator::Word,
|
501
|
+
Operator, :fg => :white, :bold => true
|
502
|
+
style Literal::Number::Float,
|
503
|
+
Literal::Number::Hex,
|
504
|
+
Literal::Number::Integer::Long,
|
505
|
+
Literal::Number::Integer,
|
506
|
+
Literal::Number::Oct,
|
507
|
+
Literal::Number,
|
508
|
+
Literal::String::Escape, :fg => :violet
|
509
|
+
style Literal::String::Backtick,
|
510
|
+
Literal::String::Char,
|
511
|
+
Literal::String::Doc,
|
512
|
+
Literal::String::Double,
|
513
|
+
Literal::String::Heredoc,
|
514
|
+
Literal::String::Interpol,
|
515
|
+
Literal::String::Other,
|
516
|
+
Literal::String::Regex,
|
517
|
+
Literal::String::Single,
|
518
|
+
Literal::String::Symbol,
|
519
|
+
Literal::String, :fg => :red, :bold => true
|
520
|
+
style Name::Attribute, :fg => :green
|
521
|
+
style Name::Class,
|
522
|
+
Name::Decorator,
|
523
|
+
Name::Exception,
|
524
|
+
Name::Function, :fg => :white, :bold => false
|
525
|
+
style Name::Constant, :fg => :blue
|
526
|
+
style Name::Builtin::Pseudo,
|
527
|
+
Name::Builtin,
|
528
|
+
Name::Entity,
|
529
|
+
Name::Namespace,
|
530
|
+
Name::Variable::Class,
|
531
|
+
Name::Variable::Global,
|
532
|
+
Name::Variable::Instance,
|
533
|
+
Name::Variable,
|
534
|
+
Text::Whitespace, :fg => :white
|
535
|
+
style Name::Label, :fg => :white, :bold => true
|
536
|
+
style Name::Tag, :fg => :white
|
537
|
+
style Text, :fg => :white, :bg => :black
|
538
|
+
end
|
539
|
+
|
540
|
+
css_ = Theme.new.render().to_s.gsub("\n", " ")
|
541
|
+
|
542
|
+
CSSES.push css_
|
543
|
+
end
|
544
|
+
|
545
|
+
def make(file)
|
546
|
+
formatter = Rouge::Formatters::HTML.new
|
547
|
+
colors = "".colors
|
548
|
+
|
549
|
+
text = File.read(file).gsub(/\/\*\*.*?\*\//m, "")
|
550
|
+
text.gsub! /^.+$/ do |q|
|
551
|
+
q.sub(/\s+$/, "")
|
552
|
+
end
|
553
|
+
|
554
|
+
text.gsub!(/^\s+/) do |i|
|
555
|
+
# "\t" * (i.size / 4)
|
556
|
+
" " * i.size
|
557
|
+
end
|
558
|
+
font = fonts = [
|
559
|
+
"Arial, sans-serif",
|
560
|
+
"Helvetica, sans-serif",
|
561
|
+
"Times New Roman, serif",
|
562
|
+
"Times, serif",
|
563
|
+
"Courier New, monospace",
|
564
|
+
"Courier, monospace",
|
565
|
+
"Verdana, sans-serif",
|
566
|
+
"Georgia, serif",
|
567
|
+
"Palatino, serif",
|
568
|
+
"Garamond, serif",
|
569
|
+
"Bookman, serif",
|
570
|
+
"Comic Sans MS, sans-serif",
|
571
|
+
"Trebuchet MS, sans-serif",
|
572
|
+
"Arial Black, sans-serif",
|
573
|
+
"Impact, sans-serif",
|
574
|
+
"Lucida Sans Unicode, sans-serif",
|
575
|
+
"Tahoma, sans-serif",
|
576
|
+
"Geneva, sans-serif",
|
577
|
+
"Century Gothic, sans-serif",
|
578
|
+
"Monaco, monospace",
|
579
|
+
].sample.dump
|
580
|
+
bg = c
|
581
|
+
text = "<!DOCTYPE html>
|
582
|
+
<html>
|
583
|
+
<head>
|
584
|
+
<style type='text/css'>
|
585
|
+
body { font-family: #{font}; background-color: #{bg}; font-size: #{80 + rand * 200}%; text-shadow: #{(20..40).to_a.sample}px #{(20..40).to_a.sample}px #{(60..90).to_a.sample}px; }
|
586
|
+
|
587
|
+
#{CSSES.pop}
|
588
|
+
|
589
|
+
body {
|
590
|
+
}
|
591
|
+
</style>
|
592
|
+
</head>
|
593
|
+
|
594
|
+
<body>
|
595
|
+
|
596
|
+
|
597
|
+
<div class=highlight style='background-color: #{bg};'>
|
598
|
+
<style type=\"text/css\">
|
599
|
+
</style>
|
600
|
+
#{to_nonbreaking(GLOBAL_FORMATTER.format(GLOBAL_LEXER.lex(text)).gsub("\n", "<br/>"))}
|
601
|
+
</div>
|
602
|
+
|
603
|
+
</body></html>"
|
604
|
+
|
605
|
+
File.write file + "_2.html", text
|
606
|
+
end
|
607
|
+
|
608
|
+
require "puppeteer-ruby"
|
609
|
+
|
610
|
+
if ARGV[0] != "video"
|
611
|
+
outs = %w[pic.png pic2.png pic3.png]
|
612
|
+
puts "Puppeteer."
|
613
|
+
Puppeteer.launch headless: true do |browser|
|
614
|
+
["lib.html", "lib2.html", "lib3.html"].map do |i|
|
615
|
+
i
|
616
|
+
end.each do |image_path|
|
617
|
+
puts image_path
|
618
|
+
begin
|
619
|
+
o = outs.shift
|
620
|
+
if File.exist? o
|
621
|
+
# next
|
622
|
+
end
|
623
|
+
page = browser.pages.first
|
624
|
+
puts "page"
|
625
|
+
|
626
|
+
if image_path == "lib2.html"
|
627
|
+
page.viewport = (Puppeteer::Viewport.new(width: 1080, height: 1420))
|
628
|
+
else
|
629
|
+
page.viewport = (Puppeteer::Viewport.new(width: 1080, height: 1920))
|
630
|
+
end
|
631
|
+
puts "page.viewport"
|
632
|
+
|
633
|
+
path = "file:///#{File.expand_path(image_path)}"
|
634
|
+
puts "goto until domcontent"
|
635
|
+
begin
|
636
|
+
th = Thread.new do |i|
|
637
|
+
sleep 10
|
638
|
+
exec File.expand_path(__FILE__)
|
639
|
+
end
|
640
|
+
page.goto(path, wait_until: "domcontentloaded", timeout: 15000)
|
641
|
+
|
642
|
+
begin
|
643
|
+
th.kill
|
644
|
+
rescue Exception
|
645
|
+
end
|
646
|
+
rescue Exception
|
647
|
+
puts "Error retry"
|
648
|
+
sleep 3
|
649
|
+
retry
|
650
|
+
end
|
651
|
+
puts "goto until domcontent done"
|
652
|
+
puts "wait body"
|
653
|
+
|
654
|
+
page.wait_for_selector "body"
|
655
|
+
puts "wait body done"
|
656
|
+
|
657
|
+
puts "wait screenshot now!!"
|
658
|
+
fp = image_path != "./lib2.html"
|
659
|
+
puts "FP? #{image_path}" + fp.to_s
|
660
|
+
page.screenshot(path: o, omit_background: true, full_page: fp)
|
661
|
+
puts "SS done."
|
662
|
+
#gets
|
663
|
+
end
|
664
|
+
rescue Exception => e
|
665
|
+
puts "Error #{e.to_s[0..]}"
|
666
|
+
end
|
667
|
+
|
668
|
+
puts "Done"
|
669
|
+
end
|
670
|
+
end
|
671
|
+
|
672
|
+
if ARGV.first == "video"
|
673
|
+
puts "video"
|
674
|
+
begin
|
675
|
+
Dir.chdir "imgs"
|
676
|
+
rescue Exception
|
677
|
+
end
|
678
|
+
|
679
|
+
Dir.glob("*.html").each do |i|
|
680
|
+
if i.match /_/
|
681
|
+
else
|
682
|
+
make i
|
683
|
+
puts "Made for #{i}"
|
684
|
+
end
|
685
|
+
end
|
686
|
+
|
687
|
+
puts "Puppeteer2."
|
688
|
+
Puppeteer.launch headless: true do |browser|
|
689
|
+
Dir.glob("*_2.html").sort.map do |i|
|
690
|
+
i
|
691
|
+
end.each_with_index do |image_path, ind|
|
692
|
+
ind += 1
|
693
|
+
puts image_path
|
694
|
+
begin
|
695
|
+
o = "pic%s.png" % ind
|
696
|
+
if File.exist? o
|
697
|
+
next
|
698
|
+
end
|
699
|
+
page = browser.pages.first
|
700
|
+
puts "page"
|
701
|
+
page.viewport = (Puppeteer::Viewport.new(width: 1080, height: 1920))
|
702
|
+
puts "page.viewport"
|
703
|
+
|
704
|
+
path = "file:///#{File.expand_path(image_path)}"
|
705
|
+
puts "goto until domcontent"
|
706
|
+
begin
|
707
|
+
th = Thread.new do |i|
|
708
|
+
sleep 10
|
709
|
+
Dir.chdir ".."
|
710
|
+
exec File.expand_path(__FILE__) + " video"
|
711
|
+
end
|
712
|
+
|
713
|
+
page.goto(path, wait_until: "domcontentloaded", timeout: 15000)
|
714
|
+
|
715
|
+
begin
|
716
|
+
th.kill
|
717
|
+
rescue Exception
|
718
|
+
end
|
719
|
+
rescue Exception
|
720
|
+
puts "Error retry"
|
721
|
+
sleep 3
|
722
|
+
retry
|
723
|
+
end
|
724
|
+
puts "goto until domcontent done"
|
725
|
+
puts "wait body"
|
726
|
+
|
727
|
+
page.wait_for_selector "body"
|
728
|
+
puts "wait body done"
|
729
|
+
|
730
|
+
puts "wait screenshot now!!"
|
731
|
+
page.screenshot(path: o, omit_background: true, full_page: false)
|
732
|
+
puts "SS done #{o}.".green
|
733
|
+
#gets
|
734
|
+
end
|
735
|
+
rescue Exception => e
|
736
|
+
puts "Error #{e.to_s[0..]}"
|
737
|
+
end
|
738
|
+
|
739
|
+
puts "Done"
|
740
|
+
end
|
741
|
+
end
|