// File: ghulette[P]neural-net-openmp/dataset.cpp
// Function: test()
void test() {
	using namespace std;
	cout << "Testing full encoding" << endl;
	for(int i=0; i < 10; i++) {
		cout << "Label: " << i << endl;
		double *vec = vector_for_label_full(i);
		print_vec(vec, FULL_LENGTH);
		int label = label_for_vector_full(vec);
		cout << "Output: " << label << endl;
		delete[] vec;
	}
	cout << "Testing ascii encoding" << endl;
	for(int i=0; i < 10; i++) {
		cout << "Label: " << i << endl;
		double *vec = vector_for_label_ascii(i);
		print_vec(vec, ASCII_LENGTH);
		int label = label_for_vector_ascii(vec);
		cout << "Output: " << label << endl;
		delete[] vec;
	}
	cout << "Testing packed encoding" << endl;
	for(int i=0; i < 10; i++) {
		cout << "Label: " << i << endl;
		double *vec = vector_for_label_packed(i);
		print_vec(vec, PACKED_LENGTH);
		int label = label_for_vector_packed(vec);
		cout << "Output: " << label << endl;
		delete[] vec;
	}
	
}

// Assembly:
subq $0x58, %rsp
movq 0x5505(%rip), %rdi      # 0x7fd0
leaq 0x355c(%rip), %rsi      # 0x602e
callq 0x2150
movq %rax, %rdi
movq 0x54d7(%rip), %rsi      # 0x7fb8
callq 0x2180
movl $0x0, 0x54(%rsp)
cmpl $0xa, 0x54(%rsp)
jge 0x2bac
movq 0x54d0(%rip), %rdi      # 0x7fd0
leaq 0x353d(%rip), %rsi      # 0x6044
callq 0x2150
movq %rax, %rdi
movl 0x54(%rsp), %esi
callq 0x2260
movq %rax, %rdi
movq 0x5496(%rip), %rsi      # 0x7fb8
callq 0x2180
movl 0x54(%rsp), %edi
callq 0x2940
movq %rax, 0x48(%rsp)
movq 0x48(%rsp), %rdi
movl $0xa, %esi
callq 0x2a30
movq 0x48(%rsp), %rdi
callq 0x29c0
movl %eax, 0x44(%rsp)
movq 0x5477(%rip), %rdi      # 0x7fd0
leaq 0x34ec(%rip), %rsi      # 0x604c
callq 0x2150
movq %rax, %rdi
movl 0x44(%rsp), %esi
callq 0x2260
movq %rax, %rdi
movq 0x543d(%rip), %rsi      # 0x7fb8
callq 0x2180
movq 0x48(%rsp), %rax
movq %rax, 0x18(%rsp)
cmpq $0x0, %rax
je 0x2b9a
movq 0x18(%rsp), %rdi
callq 0x2210
jmp 0x2b9c
movl 0x54(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x54(%rsp)
jmp 0x2aee
movq 0x541d(%rip), %rdi      # 0x7fd0
leaq 0x349b(%rip), %rsi      # 0x6055
callq 0x2150
movq %rax, %rdi
movq 0x53ef(%rip), %rsi      # 0x7fb8
callq 0x2180
movl $0x0, 0x40(%rsp)
cmpl $0xa, 0x40(%rsp)
jge 0x2c94
movq 0x53e8(%rip), %rdi      # 0x7fd0
leaq 0x3455(%rip), %rsi      # 0x6044
callq 0x2150
movq %rax, %rdi
movl 0x40(%rsp), %esi
callq 0x2260
movq %rax, %rdi
movq 0x53ae(%rip), %rsi      # 0x7fb8
callq 0x2180
movl 0x40(%rsp), %edi
callq 0x27a0
movq %rax, 0x38(%rsp)
movq 0x38(%rsp), %rdi
movl $0x8, %esi
callq 0x2a30
movq 0x38(%rsp), %rdi
callq 0x2810
movl %eax, 0x34(%rsp)
movq 0x538f(%rip), %rdi      # 0x7fd0
leaq 0x3404(%rip), %rsi      # 0x604c
callq 0x2150
movq %rax, %rdi
movl 0x34(%rsp), %esi
callq 0x2260
movq %rax, %rdi
movq 0x5355(%rip), %rsi      # 0x7fb8
callq 0x2180
movq 0x38(%rsp), %rax
movq %rax, 0x10(%rsp)
cmpq $0x0, %rax
je 0x2c82
movq 0x10(%rsp), %rdi
callq 0x2210
jmp 0x2c84
movl 0x40(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x40(%rsp)
jmp 0x2bd6
movq 0x5335(%rip), %rdi      # 0x7fd0
leaq 0x33ca(%rip), %rsi      # 0x606c
callq 0x2150
movq %rax, %rdi
movq 0x5307(%rip), %rsi      # 0x7fb8
callq 0x2180
movl $0x0, 0x30(%rsp)
cmpl $0xa, 0x30(%rsp)
jge 0x2d7c
movq 0x5300(%rip), %rdi      # 0x7fd0
leaq 0x336d(%rip), %rsi      # 0x6044
callq 0x2150
movq %rax, %rdi
movl 0x30(%rsp), %esi
callq 0x2260
movq %rax, %rdi
movq 0x52c6(%rip), %rsi      # 0x7fb8
callq 0x2180
movl 0x30(%rsp), %edi
callq 0x2870
movq %rax, 0x28(%rsp)
movq 0x28(%rsp), %rdi
movl $0x4, %esi
callq 0x2a30
movq 0x28(%rsp), %rdi
callq 0x28e0
movl %eax, 0x24(%rsp)
movq 0x52a7(%rip), %rdi      # 0x7fd0
leaq 0x331c(%rip), %rsi      # 0x604c
callq 0x2150
movq %rax, %rdi
movl 0x24(%rsp), %esi
callq 0x2260
movq %rax, %rdi
movq 0x526d(%rip), %rsi      # 0x7fb8
callq 0x2180
movq 0x28(%rsp), %rax
movq %rax, 0x8(%rsp)
cmpq $0x0, %rax
je 0x2d6a
movq 0x8(%rsp), %rdi
callq 0x2210
jmp 0x2d6c
movl 0x30(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x30(%rsp)
jmp 0x2cbe
addq $0x58, %rsp
retq
nopw %cs:(%rax,%rax)