// File: aisthesis[P]realnumber/tst/real_number_test.cpp
// Function: constructor::equals_small_number2::test_method()
BOOST_AUTO_TEST_CASE(equals_small_number2) {
		// tests only the last digit for the small number and allows 2 possible values
		std::string output = small_num_rn.to_decimal_string();
		char original_digit = small_num_str[small_num_str.length() - 1];
		char output_digit = output[small_num_str.length() - 1];
		bool the_same = original_digit == output_digit;
		if (!the_same) {
			BOOST_TEST_MESSAGE("Last digit of input differs from corresponding digit of output:");
			BOOST_TEST_MESSAGE(std::string("input digit: ").append(1, original_digit));
			BOOST_TEST_MESSAGE(std::string("output digit: ").append(1, output_digit));
		}
		bool close_enough = original_digit - output_digit == 1;
		close_enough = close_enough && (output.substr(small_num_str.length(), 3) == "999");
		if (close_enough) {
			BOOST_TEST_MESSAGE("Difference between input and output is minimal and results from base conversion.");
			BOOST_TEST_MESSAGE(std::string("Relevant digits: ")
					.append(output.substr(small_num_str.length() - 1, 4)));
		}
		BOOST_REQUIRE(the_same || close_enough);
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x3f0, %rsp            # imm = 0x3F0
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rsi
movq %rsi, -0x308(%rbp)
addq $0x120, %rsi            # imm = 0x120
leaq -0x28(%rbp), %rdi
callq 0x19760
movq -0x308(%rbp), %rdi
subq $-0x80, %rdi
movq %rdi, -0x300(%rbp)
callq 0x33a0
movq -0x300(%rbp), %rdi
movq %rax, %rsi
decq %rsi
callq 0x34c0
movq %rax, -0x2f8(%rbp)
jmp 0x782c
movq -0x308(%rbp), %rdi
movq -0x2f8(%rbp), %rax
movb (%rax), %al
movb %al, -0x29(%rbp)
subq $-0x80, %rdi
callq 0x33a0
movq %rax, %rsi
decq %rsi
leaq -0x28(%rbp), %rdi
callq 0x34c0
movq %rax, -0x310(%rbp)
jmp 0x7860
movq -0x310(%rbp), %rax
movb (%rax), %al
movb %al, -0x3d(%rbp)
movsbl -0x29(%rbp), %eax
movsbl -0x3d(%rbp), %ecx
cmpl %ecx, %eax
sete %al
andb $0x1, %al
movb %al, -0x3e(%rbp)
testb $0x1, -0x3e(%rbp)
jne 0x7cca
movq 0x1ca09(%rip), %rax     # 0x24298
movq %rax, -0x318(%rbp)
leaq 0x14767(%rip), %rsi     # 0x1c004
leaq -0x68(%rbp), %rdi
movl $0x18, %edx
callq 0x15d80
jmp 0x78ad
leaq -0x58(%rbp), %rdi
leaq -0x68(%rbp), %rsi
movl $0x60, %edx
callq 0x16080
jmp 0x78c1
movq -0x318(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x3090
movq %rax, -0x320(%rbp)
jmp 0x78da
movq -0x320(%rbp), %rsi
leaq -0x3f(%rbp), %rdi
movl $0x2, %edx
callq 0x3200
jmp 0x78f1
callq 0x16040
movq %rax, -0x328(%rbp)
jmp 0x78ff
movq -0x328(%rbp), %rsi
leaq 0x148e6(%rip), %rdx     # 0x1c1f3
leaq -0x88(%rbp), %rdi
callq 0x160c0
jmp 0x791b
leaq -0x3f(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x3450
jmp 0x792d
leaq -0x88(%rbp), %rdi
callq 0x16100
leaq -0x3f(%rbp), %rdi
callq 0x33c0
movq 0x1c94f(%rip), %rax     # 0x24298
movq %rax, -0x330(%rbp)
leaq 0x146ad(%rip), %rsi     # 0x1c004
leaq -0xb8(%rbp), %rdi
movl $0x18, %edx
callq 0x15d80
jmp 0x796a
leaq -0xa8(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
movl $0x61, %edx
callq 0x16080
jmp 0x7984
movq -0x330(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x3090
movq %rax, -0x338(%rbp)
jmp 0x79a0
movq -0x338(%rbp), %rsi
leaq -0x89(%rbp), %rdi
movl $0x2, %edx
callq 0x3200
jmp 0x79ba
callq 0x16040
movq %rax, -0x340(%rbp)
jmp 0x79c8
leaq -0xf9(%rbp), %rdi
movq %rdi, -0x348(%rbp)
callq 0x3430
movq -0x348(%rbp), %rdx
leaq 0x1484a(%rip), %rsi     # 0x1c233
leaq -0xf8(%rbp), %rdi
callq 0x16160
jmp 0x79f7
movsbl -0x29(%rbp), %edx
leaq -0xf8(%rbp), %rdi
movl $0x1, %esi
callq 0x3260
movq %rax, -0x350(%rbp)
jmp 0x7a15
movq -0x350(%rbp), %rdx
movq -0x340(%rbp), %rsi
leaq -0xd8(%rbp), %rdi
callq 0x16120
jmp 0x7a31
leaq -0x89(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0x3450
jmp 0x7a46
leaq -0xd8(%rbp), %rdi
callq 0x16210
leaq -0xf8(%rbp), %rdi
callq 0x3110
leaq -0xf9(%rbp), %rdi
callq 0x3270
leaq -0x89(%rbp), %rdi
callq 0x33c0
movq 0x1c81b(%rip), %rax     # 0x24298
movq %rax, -0x358(%rbp)
leaq 0x14579(%rip), %rsi     # 0x1c004
leaq -0x128(%rbp), %rdi
movl $0x18, %edx
callq 0x15d80
jmp 0x7a9e
leaq -0x118(%rbp), %rdi
leaq -0x128(%rbp), %rsi
movl $0x62, %edx
callq 0x16080
jmp 0x7ab8
movq -0x358(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x3090
movq %rax, -0x360(%rbp)
jmp 0x7ad4
movq -0x360(%rbp), %rsi
leaq -0xfa(%rbp), %rdi
movl $0x2, %edx
callq 0x3200
jmp 0x7aee
callq 0x16040
movq %rax, -0x368(%rbp)
jmp 0x7afc
leaq -0x169(%rbp), %rdi
movq %rdi, -0x370(%rbp)
callq 0x3430
movq -0x370(%rbp), %rdx
leaq 0x14724(%rip), %rsi     # 0x1c241
leaq -0x168(%rbp), %rdi
callq 0x16160
jmp 0x7b2b
movsbl -0x3d(%rbp), %edx
leaq -0x168(%rbp), %rdi
movl $0x1, %esi
callq 0x3260
movq %rax, -0x378(%rbp)
jmp 0x7b49
movq -0x378(%rbp), %rdx
movq -0x368(%rbp), %rsi
leaq -0x148(%rbp), %rdi
callq 0x16120
jmp 0x7b65
leaq -0xfa(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0x3450
jmp 0x7b7a
leaq -0x148(%rbp), %rdi
callq 0x16210
leaq -0x168(%rbp), %rdi
callq 0x3110
leaq -0x169(%rbp), %rdi
callq 0x3270
leaq -0xfa(%rbp), %rdi
callq 0x33c0
jmp 0x7cca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x8246
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x7be6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x16100
leaq -0x3f(%rbp), %rdi
callq 0x33c0
jmp 0x8246
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x7c4e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x7c42
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x7c36
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0x16210
leaq -0xf8(%rbp), %rdi
callq 0x3110
leaq -0xf9(%rbp), %rdi
callq 0x3270
leaq -0x89(%rbp), %rdi
callq 0x33c0
jmp 0x8246
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x7cb9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x7cad
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x7ca1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x16210
leaq -0x168(%rbp), %rdi
callq 0x3110
leaq -0x169(%rbp), %rdi
callq 0x3270
leaq -0xfa(%rbp), %rdi
callq 0x33c0
jmp 0x8246
movsbl -0x29(%rbp), %eax
movsbl -0x3d(%rbp), %ecx
subl %ecx, %eax
cmpl $0x1, %eax
sete %al
andb $0x1, %al
movb %al, -0x16a(%rbp)
movb -0x16a(%rbp), %cl
movb $0x0, -0x191(%rbp)
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x379(%rbp)
je 0x7d56
movq -0x308(%rbp), %rdi
subq $-0x80, %rdi
callq 0x33a0
movq %rax, %rdx
leaq -0x190(%rbp), %rdi
leaq -0x28(%rbp), %rsi
movl $0x3, %ecx
callq 0x3240
jmp 0x7d26
movb $0x1, -0x191(%rbp)
leaq 0x14c06(%rip), %rsi     # 0x1c93a
leaq -0x190(%rbp), %rdi
callq 0x16230
movb %al, -0x37a(%rbp)
jmp 0x7d48
movb -0x37a(%rbp), %al
movb %al, -0x379(%rbp)
jmp 0x7d56
movb -0x379(%rbp), %al
andb $0x1, %al
movb %al, -0x16a(%rbp)
testb $0x1, -0x191(%rbp)
jne 0x7d6f
jmp 0x7d7b
leaq -0x190(%rbp), %rdi
callq 0x3110
testb $0x1, -0x16a(%rbp)
je 0x80ab
movq 0x1c509(%rip), %rax     # 0x24298
movq %rax, -0x388(%rbp)
leaq 0x14267(%rip), %rsi     # 0x1c004
leaq -0x1c0(%rbp), %rdi
movl $0x18, %edx
callq 0x15d80
jmp 0x7db0
leaq -0x1b0(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
movl $0x67, %edx
callq 0x16080
jmp 0x7dca
movq -0x388(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x3090
movq %rax, -0x390(%rbp)
jmp 0x7de6
movq -0x390(%rbp), %rsi
leaq -0x192(%rbp), %rdi
movl $0x2, %edx
callq 0x3200
jmp 0x7e00
callq 0x16040
movq %rax, -0x398(%rbp)
jmp 0x7e0e
movq -0x398(%rbp), %rsi
leaq 0x14434(%rip), %rdx     # 0x1c250
leaq -0x1e0(%rbp), %rdi
callq 0x16260
jmp 0x7e2a
leaq -0x192(%rbp), %rdi
leaq -0x1e0(%rbp), %rsi
callq 0x3450
jmp 0x7e3f
leaq -0x1e0(%rbp), %rdi
callq 0x162a0
leaq -0x192(%rbp), %rdi
callq 0x33c0
movq 0x1c43a(%rip), %rax     # 0x24298
movq %rax, -0x3a0(%rbp)
leaq 0x14198(%rip), %rsi     # 0x1c004
leaq -0x210(%rbp), %rdi
movl $0x18, %edx
callq 0x15d80
jmp 0x7e7f
leaq -0x200(%rbp), %rdi
leaq -0x210(%rbp), %rsi
movl $0x69, %edx
callq 0x16080
jmp 0x7e99
movq -0x3a0(%rbp), %rdi
leaq -0x200(%rbp), %rsi
callq 0x3090
movq %rax, -0x3a8(%rbp)
jmp 0x7eb5
movq -0x3a8(%rbp), %rsi
leaq -0x1e1(%rbp), %rdi
movl $0x2, %edx
callq 0x3200
jmp 0x7ecf
callq 0x16040
movq %rax, -0x3b0(%rbp)
jmp 0x7edd
leaq -0x251(%rbp), %rdi
movq %rdi, -0x3b8(%rbp)
callq 0x3430
movq -0x3b8(%rbp), %rdx
leaq 0x143a3(%rip), %rsi     # 0x1c2a1
leaq -0x250(%rbp), %rdi
callq 0x16160
jmp 0x7f0c
movq -0x308(%rbp), %rdi
subq $-0x80, %rdi
callq 0x33a0
movq %rax, %rdx
decq %rdx
leaq -0x278(%rbp), %rdi
leaq -0x28(%rbp), %rsi
movl $0x4, %ecx
callq 0x3240
jmp 0x7f39
leaq -0x250(%rbp), %rdi
leaq -0x278(%rbp), %rsi
callq 0x34a0
movq %rax, -0x3c0(%rbp)
jmp 0x7f55
movq -0x3c0(%rbp), %rdx
movq -0x3b0(%rbp), %rsi
leaq -0x230(%rbp), %rdi
callq 0x16120
jmp 0x7f71
leaq -0x1e1(%rbp), %rdi
leaq -0x230(%rbp), %rsi
callq 0x3450
jmp 0x7f86
leaq -0x230(%rbp), %rdi
callq 0x16210
leaq -0x278(%rbp), %rdi
callq 0x3110
leaq -0x250(%rbp), %rdi
callq 0x3110
leaq -0x251(%rbp), %rdi
callq 0x3270
leaq -0x1e1(%rbp), %rdi
callq 0x33c0
jmp 0x80ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
testb $0x1, -0x191(%rbp)
jne 0x7fde
jmp 0x7fea
leaq -0x190(%rbp), %rdi
callq 0x3110
jmp 0x8246
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x8015
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x162a0
leaq -0x192(%rbp), %rdi
callq 0x33c0
jmp 0x8246
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x809a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x808e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x8082
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x8076
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x230(%rbp), %rdi
callq 0x16210
leaq -0x278(%rbp), %rdi
callq 0x3110
leaq -0x250(%rbp), %rdi
callq 0x3110
leaq -0x251(%rbp), %rdi
callq 0x3270
leaq -0x1e1(%rbp), %rdi
callq 0x33c0
jmp 0x8246
jmp 0x80ad
movq 0x1c1e4(%rip), %rax     # 0x24298
movq %rax, -0x3c8(%rbp)
leaq 0x13f42(%rip), %rsi     # 0x1c004
leaq -0x288(%rbp), %rdi
movl $0x18, %edx
callq 0x15d80
jmp 0x80d5
leaq -0x298(%rbp), %rdi
callq 0x15db0
jmp 0x80e3
movq -0x3c8(%rbp), %rdi
leaq -0x288(%rbp), %rsi
movl $0x6b, %edx
leaq -0x298(%rbp), %rcx
callq 0x3470
jmp 0x8104
movb $0x1, %al
testb $0x1, -0x3e(%rbp)
movb %al, -0x3c9(%rbp)
jne 0x811e
movb -0x16a(%rbp), %al
movb %al, -0x3c9(%rbp)
movb -0x3c9(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0x2b0(%rbp), %rdi
callq 0x162c0
jmp 0x8138
callq 0x16040
movq %rax, -0x3d8(%rbp)
jmp 0x8146
leaq 0x14166(%rip), %rsi     # 0x1c2b3
leaq -0x2e0(%rbp), %rdi
movl $0x18, %edx
callq 0x15d80
jmp 0x8160
movq -0x3d8(%rbp), %rsi
leaq -0x2d0(%rbp), %rdi
leaq -0x2e0(%rbp), %rdx
callq 0x16300
jmp 0x817c
leaq 0x13e81(%rip), %rsi     # 0x1c004
leaq -0x2f0(%rbp), %rdi
movl $0x18, %edx
callq 0x15d80
jmp 0x8196
movq %rsp, %rax
movq $0x0, (%rax)
xorl %r9d, %r9d
movb %r9b, %al
leaq -0x2b0(%rbp), %rdi
leaq -0x2d0(%rbp), %rsi
leaq -0x2f0(%rbp), %rdx
movl $0x6b, %ecx
movl $0x2, %r8d
callq 0x3460
jmp 0x81cd
leaq -0x2d0(%rbp), %rdi
callq 0x16340
leaq -0x2b0(%rbp), %rdi
callq 0x16360
callq 0x16070
movb %al, -0x3d9(%rbp)
jmp 0x81f2
movb -0x3d9(%rbp), %al
testb $0x1, %al
jne 0x80ad
jmp 0x8202
leaq -0x28(%rbp), %rdi
callq 0x3110
addq $0x3f0, %rsp            # imm = 0x3F0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x823a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x2d0(%rbp), %rdi
callq 0x16340
leaq -0x2b0(%rbp), %rdi
callq 0x16360
leaq -0x28(%rbp), %rdi
callq 0x3110
movq -0x38(%rbp), %rdi
callq 0x3420
nopl (%rax,%rax)