// File: /workspace/github_cpp_makefile_star2_O3/PrarabdhJoshi[P]DatabaseImplementation/test.cc
// Function: main
int main () {
cout <<"here";
	setup (catalog_path, dbfile_dir, tpch_dir);

	void (*test) ();
	relation *rel_ptr[] = {n, r, c, p, ps, o, li};
	void (*test_ptr[]) () = {&test1, &test2, &test3};  

	int tindx = 0;
	while (tindx < 1 || tindx > 3) {
		cout << " select test: \n";
		cout << " \t 1. load file \n";
		cout << " \t 2. scan \n";
		cout << " \t 3. scan & filter \n \t ";
		cin >> tindx;
	}

	int findx = 0;
	while (findx < 1 || findx > 7) {
		cout << "\n select table: \n";
		cout << "\t 1. nation \n";
		cout << "\t 2. region \n";
		cout << "\t 3. customer \n";
		cout << "\t 4. part \n";
		cout << "\t 5. partsupp \n";
		cout << "\t 6. orders \n";
		cout << "\t 7. lineitem \n \t ";
		cin >> findx;
	}

	rel = rel_ptr [findx - 1];
	test = test_ptr [tindx - 1];

	test ();

	cleanup ();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq 0x4b2e(%rip), %rbx      # 0xbfc0
leaq 0x16f3(%rip), %rsi      # 0x8b8c
movl $0x4, %edx
movq %rbx, %rdi
callq 0x21c0
movq 0x4d9b(%rip), %rdi      # 0xc248
movq 0x4d84(%rip), %rsi      # 0xc238
movq 0x4d85(%rip), %rdx      # 0xc240
callq 0x6a94
movq 0x4e41(%rip), %rax      # 0xc308
movq %rax, 0x10(%rsp)
movq 0x4e45(%rip), %rax      # 0xc318
movq %rax, 0x18(%rsp)
movq 0x4e49(%rip), %rax      # 0xc328
movq %rax, 0x20(%rsp)
movq 0x4e0d(%rip), %rax      # 0xc2f8
movq %rax, 0x28(%rsp)
movq 0x4e09(%rip), %rax      # 0xc300
movq %rax, 0x30(%rsp)
movq 0x4e1d(%rip), %rax      # 0xc320
movq %rax, 0x38(%rsp)
movq 0x4e01(%rip), %rax      # 0xc310
movq %rax, 0x40(%rsp)
leaq 0xc(%rsp), %r14
movl $0x0, (%r14)
leaq 0x16f4(%rip), %r12      # 0x8c1b
leaq 0x16ff(%rip), %r13      # 0x8c2d
leaq 0x1705(%rip), %rbp      # 0x8c3a
movq 0x4a9c(%rip), %r15      # 0xbfd8
movl $0xf, %edx
movq %rbx, %rdi
leaq 0x16c0(%rip), %rsi      # 0x8c0b
callq 0x21c0
movl $0x11, %edx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x21c0
movl $0xc, %edx
movq %rbx, %rdi
movq %r13, %rsi
callq 0x21c0
movl $0x18, %edx
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x21c0
movq %r15, %rdi
movq %r14, %rsi
callq 0x2100
movl 0xc(%rsp), %eax
addl $-0x4, %eax
cmpl $-0x3, %eax
jb 0x753c
leaq 0x8(%rsp), %rax
movl $0x0, (%rax)
movq 0x4a17(%rip), %r14      # 0xbfc0
leaq 0x16e1(%rip), %r15      # 0x8c91
leaq 0x16e6(%rip), %rbx      # 0x8c9d
leaq 0x16ef(%rip), %r12      # 0x8cad
leaq 0x16f6(%rip), %r13      # 0x8cbb
movq 0x4a0c(%rip), %rbp      # 0xbfd8
movl $0x11, %edx
movq %r14, %rdi
leaq 0x1678(%rip), %rsi      # 0x8c53
callq 0x21c0
movl $0xd, %edx
movq %r14, %rdi
leaq 0x1676(%rip), %rsi      # 0x8c65
callq 0x21c0
movl $0xd, %edx
movq %r14, %rdi
leaq 0x1670(%rip), %rsi      # 0x8c73
callq 0x21c0
movl $0xf, %edx
movq %r14, %rdi
leaq 0x166a(%rip), %rsi      # 0x8c81
callq 0x21c0
movl $0xb, %edx
movq %r14, %rdi
movq %r15, %rsi
callq 0x21c0
movl $0xf, %edx
movq %r14, %rdi
movq %rbx, %rsi
callq 0x21c0
movl $0xd, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0x21c0
movl $0x12, %edx
movq %r14, %rdi
movq %r13, %rsi
callq 0x21c0
movq %rbp, %rdi
leaq 0x8(%rsp), %rsi
callq 0x2100
movl 0x8(%rsp), %eax
leal -0x8(%rax), %ecx
cmpl $-0x7, %ecx
jb 0x75cc
movslq 0xc(%rsp), %rcx
decl %eax
movq 0x10(%rsp,%rax,8), %rax
movq %rax, 0x4ca4(%rip)      # 0xc330
leaq 0x46cd(%rip), %rax      # 0xbd60
callq *-0x8(%rax,%rcx,8)
movq 0x4c52(%rip), %rdi      # 0xc2f0
movl $0x80, %esi
callq 0x21a0
xorl %eax, %eax
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop