diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..5475a73 --- /dev/null +++ b/.clang-format @@ -0,0 +1,22 @@ +AlignAfterOpenBracket: DontAlign +AlignEscapedNewlines: DontAlign +AlignOperands: DontAlign +AllowShortBlocksOnASingleLine: Always +AllowShortCaseLabelsOnASingleLine: true +AllowShortEnumsOnASingleLine: true +AllowShortIfStatementsOnASingleLine: true +AllowShortLoopsOnASingleLine: true +AlwaysBreakAfterDefinitionReturnType: TopLevel +BreakBeforeTernaryOperators: false +BinPackArguments: false +BinPackParameters: false +BreakBeforeBraces: WebKit +IndentCaseLabels: false +TabWidth: 4 +IndentWidth: 4 +ContinuationIndentWidth: 4 +UseTab: ForContinuationAndIndentation +ColumnLimit: 0 +ReflowComments: false +SortIncludes: false +SpaceBeforeParens: false \ No newline at end of file diff --git a/bin/niconst_test b/bin/niconst_test new file mode 100755 index 0000000..84e0070 Binary files /dev/null and b/bin/niconst_test differ diff --git a/bin/niconst_test.dSYM/Contents/Info.plist b/bin/niconst_test.dSYM/Contents/Info.plist new file mode 100644 index 0000000..98b8484 --- /dev/null +++ b/bin/niconst_test.dSYM/Contents/Info.plist @@ -0,0 +1,20 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleIdentifier + com.apple.xcode.dsym.niconst_test + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + dSYM + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/bin/niconst_test.dSYM/Contents/Resources/DWARF/niconst_test b/bin/niconst_test.dSYM/Contents/Resources/DWARF/niconst_test new file mode 100644 index 0000000..a271d4d Binary files /dev/null and b/bin/niconst_test.dSYM/Contents/Resources/DWARF/niconst_test differ diff --git a/bin/niconst_test.dSYM/Contents/Resources/Relocations/aarch64/niconst_test.yml b/bin/niconst_test.dSYM/Contents/Resources/Relocations/aarch64/niconst_test.yml new file mode 100644 index 0000000..108c30c --- /dev/null +++ b/bin/niconst_test.dSYM/Contents/Resources/Relocations/aarch64/niconst_test.yml @@ -0,0 +1,5 @@ +--- +triple: 'arm64-apple-darwin' +binary-path: 'bin/niconst_test' +relocations: [] +... diff --git a/makefile b/makefile new file mode 100644 index 0000000..359b8a7 --- /dev/null +++ b/makefile @@ -0,0 +1,18 @@ +RELEASE_flags=-DNDEBUG -O2 -g0 +DEBUG_flags=-std=c23 -DDEBUG -Wall -Wno-unknown-pragmas -Wpedantic -Wshadow -Wextra -Werror=implicit-int -Werror=incompatible-pointer-types -Werror=int-conversion -Wvla -g -Og -fsanitize=address -fsanitize=undefined + +clean: + rm -fr bin + +format: + clang-format -i test/niconst_test.c + clang-format -i niconst.h + +test: bin/test + bin/niconst_test + +.PHONY: test clean + +bin/test: test/niconst_test.c + mkdir -p bin/test + cc ${DEBUG_flags} test/niconst_test.c -o bin/niconst_test \ No newline at end of file diff --git a/niconst.h b/niconst.h new file mode 100644 index 0000000..7e21d29 --- /dev/null +++ b/niconst.h @@ -0,0 +1,17 @@ +#pragma once + +#define NICONST_SIZE_T_ZERO ((size_t) 0) + +// MEMORY CONSTANTS: BINARY +#define NICONST_MEM_BINARY_FACTOR ((size_t) 1024) +#define NICONST_KIB_B(n) ((n) * NICONST_MEM_BINARY_FACTOR) +#define NICONST_MIB_B(n) ((NICONST_KIB_B(n)) * NICONST_MEM_BINARY_FACTOR) +#define NICONST_GIB_B(n) ((NICONST_MIB_B(n)) * NICONST_MEM_BINARY_FACTOR) +#define NICONST_TIB_B(n) ((NICONST_GIB_B(n)) * NICONST_MEM_BINARY_FACTOR) + +// MEMORY CONSTANTS: DECIMAL +#define NICONST_MEM_DECIMAL_FACTOR ((size_t) 1000) +#define NICONST_KB_B(n) ((n) * NICONST_MEM_DECIMAL_FACTOR) +#define NICONST_MB_B(n) ((NICONST_KB_B(n)) * NICONST_MEM_DECIMAL_FACTOR) +#define NICONST_GB_B(n) ((NICONST_MB_B(n)) * NICONST_MEM_DECIMAL_FACTOR) +#define NICONST_TB_B(n) ((NICONST_GB_B(n)) * NICONST_MEM_DECIMAL_FACTOR) diff --git a/test/niconst_test.c b/test/niconst_test.c new file mode 100644 index 0000000..1e96873 --- /dev/null +++ b/test/niconst_test.c @@ -0,0 +1,80 @@ +#include "../niconst.h" +#include +#include + +void +test_kib_b() +{ + assert(NICONST_KIB_B(0) == (size_t) 0); + assert(NICONST_KIB_B(1) == (size_t) 1024); +} + +void +test_mib_b() +{ + assert(NICONST_MIB_B(0) == (size_t) 0); + assert(NICONST_MIB_B(1) == (size_t) 1048576); + assert(NICONST_MIB_B(5) == ((size_t) 1024) * NICONST_KIB_B(5)); +} + +void +test_gib_b() +{ + assert(NICONST_GIB_B(0) == (size_t) 0); + assert(NICONST_GIB_B(1) == (size_t) 1073741824); + assert(NICONST_GIB_B(3) == ((size_t) 1024) * NICONST_MIB_B(3)); +} + +void +test_tib_b() +{ + assert(NICONST_TIB_B(0) == (size_t) 0); + assert(NICONST_TIB_B(1) == (size_t) 1099511627776); + assert(NICONST_TIB_B(3) == ((size_t) 1024) * NICONST_GIB_B(3)); +} + +void +test_kb_b() +{ + assert(NICONST_KB_B(0) == (size_t) 0); + assert(NICONST_KB_B(1) == (size_t) 1000); +} + +void +test_mb_b() +{ + assert(NICONST_MB_B(0) == (size_t) 0); + assert(NICONST_MB_B(1) == (size_t) 1000000); + assert(NICONST_MB_B(5) == ((size_t) 1000) * NICONST_KB_B(5)); +} + +void +test_gb_b() +{ + assert(NICONST_GB_B(0) == (size_t) 0); + assert(NICONST_GB_B(1) == (size_t) 1000000000); + assert(NICONST_GB_B(3) == ((size_t) 1000) * NICONST_MB_B(3)); +} + +void +test_tb_b() +{ + assert(NICONST_TB_B(0) == (size_t) 0); + assert(NICONST_TB_B(1) == (size_t) 1000000000000); + assert(NICONST_TB_B(3) == ((size_t) 1000) * NICONST_GB_B(3)); +} + +int +main() +{ + test_kib_b(); + test_mib_b(); + test_gib_b(); + test_tib_b(); + test_kb_b(); + test_mb_b(); + test_gb_b(); + test_tb_b(); + printf("== TESTS SUCCESSFUL ==\n"); + return 0; +}