You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

main.c 976B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #include "vm/vm.h"
  2. #include "bitmap.h"
  3. #include <stdio.h>
  4. #include <assert.h>
  5. int main() {
  6. struct l2_bitmap bm;
  7. l2_bitmap_init(&bm);
  8. for (size_t i = 0; i < 8191; ++i) {
  9. size_t id = l2_bitmap_set_next(&bm);
  10. assert(id == i);
  11. assert(l2_bitmap_get(&bm, i));
  12. }
  13. for (size_t i = 0; i < 10000; ++i) {
  14. if (i < 8191) {
  15. assert(l2_bitmap_get(&bm, i));
  16. } else {
  17. assert(!l2_bitmap_get(&bm, i));
  18. }
  19. }
  20. l2_bitmap_unset(&bm, 100);
  21. assert(l2_bitmap_set_next(&bm) == 8191);
  22. assert(l2_bitmap_set_next(&bm) == 100);
  23. l2_bitmap_free(&bm);
  24. }
  25. /*
  26. int main() {
  27. struct l2_op ops[] = {
  28. { L2_OP_PUSH, 100 },
  29. { L2_OP_PUSH, 100 },
  30. { L2_OP_ADD },
  31. { L2_OP_HALT },
  32. };
  33. struct l2_vm vm;
  34. l2_vm_init(&vm, ops, sizeof(ops) / sizeof(*ops));
  35. while (vm.ops[vm.iptr].code != L2_OP_HALT) {
  36. printf("Exec %i\n", vm.ops[vm.iptr].code);
  37. l2_vm_step(&vm);
  38. }
  39. printf("Done. Stack:\n");
  40. for (l2_word i = 0; i < vm.sptr; ++i) {
  41. printf(" %i: %i\n", i, vm.stack[i]);
  42. }
  43. }
  44. */