extern void segment_map_test(umMem_T memory) { for (int i = 1; i <= 7; i++) { segment_map(memory, i, i * 2); } for (int i = 1; i <= 7; i++) { int reg_val = register_get(memory, i); fprintf(stderr, "regID: %d, segID: %d, segLength: %d\n", i, reg_val, segment_length(memory, reg_val)); } for (int i = 1; i <= 7; i+=2) { fprintf(stderr, "i: %d\n", i); segment_unmap(memory, i); } for (int i = 1; i <= 7; i+=2) { segment_map(memory, i, i + 10); } for (int i = 1; i <= 7; i++) { int reg_val = register_get(memory, i); fprintf(stderr, "regID: %d, segID: %d, segLength: %d\n", i, reg_val, segment_length(memory, reg_val)); } }
//Trivia int Bigint::digits() const { int segments = number.size(); if(segments == 0) return 0; int digits = 9*(segments-1); digits += segment_length(number.back()); return digits; }
extern void segment_length_test(umMem_T memory) { for (int i = 0; i < 20; i+=2) { segment_map(memory, i, i * 2); int seg_length = segment_length(memory, i); if (i * 2 != seg_length) { fprintf(stderr, "Wrong length at %d\n", i); } } fprintf(stderr, "segment_length is fine with valid inputs\n"); }
extern void segment_unmap_test(umMem_T memory) { for (int i = 1; i < 20; i++) { int seg_length = segment_length(memory, i); if (seg_length != i * 2) { fprintf(stderr, "Length is not right"); } segment_unmap(memory, i); if (segment_isEmpty(memory, i) == false) { fprintf(stderr, "Not correctly unmapped m[%d]\n", i); } } fprintf(stderr, "segment_unmap is fine with valid inputs\n"); }