#pragma once void fill_pattern(uint32_t *buf, size_t words, uint32_t pattern) { for (size_t i = 0; i < words; i++) { buf[i] = pattern; } } void fill_increment(uint32_t *buf, size_t words) { for (size_t i = 0; i < words; i++) { buf[i] = (uint32_t)i; } } int check_pattern(uint32_t *buf, size_t words, uint32_t pattern) { int errors = 0; for (size_t i = 0; i < words; i++) { if (buf[i] != pattern) { printf("\nОшибка в тесте %zu: должен быть: 0x%08X, фактический: 0x%08X\n", i, pattern, buf[i]); errors++; if (errors > 10) break; } } return errors; } void fill_walking_ones(uint32_t *mem, size_t words) { for (size_t i = 0; i < words; i++) { mem[i] = 1U << (i % 32); } } int fill_walking_ones_test(uint32_t *mem, size_t words) { int errors = 0; for (size_t i = 0; i < words; i++) { if (mem[i] != 1U << (i % 32)){ printf("\nПиздец\n"); errors++; } } return errors; } void fill_walking_zeros(uint32_t *mem, size_t words) { for (size_t i = 0; i < words; i++) { mem[i] = ~(1U << (i % 32)); } } int fill_walking_zeros_test(uint32_t *mem, size_t words) { int errors = 0; for (size_t i = 0; i < words; i++) { if (mem[i] != ~(1U << (i % 32))){ printf("\nПиздец\n"); errors++; } } return errors; }