// File: mohaps[P]lrucache/LRUCacheTest.cpp
// Function: lru::test()
void test()
	{
		lru::Cache<String, String> cache(3,0);
		cache.insert("hello", "world");
		cache.insert("foo", "bar");
		cache.dumpDebug(std::cout<<"--> After 2 inserts"<<std::endl);
		
		std::cout<<"checking refresh : "<<cache.get("hello")<<std::endl;
		cache.dumpDebug(std::cout<<"--> After refeshing oldest key"<<std::endl);
		
		cache.insert("hello1", "world1");
		cache.insert("foo1", "bar1");
		cache.dumpDebug(std::cout<<"--> After adding two more"<<std::endl);
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x280, %rsp            # imm = 0x280
xorl %eax, %eax
movl %eax, %edx
leaq -0x70(%rbp), %rdi
movl $0x3, %esi
callq 0x2ab0
leaq -0x91(%rbp), %rdi
movq %rdi, -0x1f0(%rbp)
callq 0x2280
movq -0x1f0(%rbp), %rdx
leaq 0x3bc6(%rip), %rsi      # 0x6004
leaq -0x90(%rbp), %rdi
callq 0x2d10
jmp 0x244c
leaq -0xc9(%rbp), %rdi
movq %rdi, -0x1f8(%rbp)
callq 0x2280
movq -0x1f8(%rbp), %rdx
leaq 0x3b9d(%rip), %rsi      # 0x600a
leaq -0xc8(%rbp), %rdi
callq 0x2d10
jmp 0x247b
leaq -0x70(%rbp), %rdi
leaq -0x90(%rbp), %rsi
leaq -0xc8(%rbp), %rdx
callq 0x2b50
jmp 0x2494
leaq -0xc8(%rbp), %rdi
callq 0x20f0
leaq -0xc9(%rbp), %rdi
callq 0x21e0
leaq -0x90(%rbp), %rdi
callq 0x20f0
leaq -0x91(%rbp), %rdi
callq 0x21e0
leaq -0xf1(%rbp), %rdi
movq %rdi, -0x200(%rbp)
callq 0x2280
movq -0x200(%rbp), %rdx
leaq 0x3b2b(%rip), %rsi      # 0x6010
leaq -0xf0(%rbp), %rdi
callq 0x2d10
jmp 0x24f3
leaq -0x119(%rbp), %rdi
movq %rdi, -0x208(%rbp)
callq 0x2280
movq -0x208(%rbp), %rdx
leaq 0x3b00(%rip), %rsi      # 0x6014
leaq -0x118(%rbp), %rdi
callq 0x2d10
jmp 0x2522
leaq -0x70(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
leaq -0x118(%rbp), %rdx
callq 0x2b50
jmp 0x253b
leaq -0x118(%rbp), %rdi
callq 0x20f0
leaq -0x119(%rbp), %rdi
callq 0x21e0
leaq -0xf0(%rbp), %rdi
callq 0x20f0
leaq -0xf1(%rbp), %rdi
callq 0x21e0
movq 0x7a66(%rip), %rdi      # 0x9fd8
leaq 0x3a9f(%rip), %rsi      # 0x6018
callq 0x2180
movq %rax, -0x210(%rbp)
jmp 0x2587
movq -0x210(%rbp), %rdi
movq 0x7a2b(%rip), %rsi      # 0x9fc0
callq 0x21c0
movq %rax, -0x218(%rbp)
jmp 0x25a3
movq -0x218(%rbp), %rsi
leaq -0x70(%rbp), %rdi
callq 0x2dc0
jmp 0x25b5
movq 0x7a1c(%rip), %rdi      # 0x9fd8
leaq 0x3a69(%rip), %rsi      # 0x602c
callq 0x2180
movq %rax, -0x220(%rbp)
jmp 0x25d1
leaq -0x141(%rbp), %rdi
movq %rdi, -0x228(%rbp)
callq 0x2280
movq -0x228(%rbp), %rdx
leaq 0x3a12(%rip), %rsi      # 0x6004
leaq -0x140(%rbp), %rdi
callq 0x2d10
jmp 0x2600
leaq -0x70(%rbp), %rdi
leaq -0x140(%rbp), %rsi
callq 0x2f10
movq %rax, -0x230(%rbp)
jmp 0x2619
movq -0x230(%rbp), %rsi
movq -0x220(%rbp), %rdi
callq 0x2170
movq %rax, -0x238(%rbp)
jmp 0x2635
movq -0x238(%rbp), %rdi
movq 0x797d(%rip), %rsi      # 0x9fc0
callq 0x21c0
jmp 0x264a
leaq -0x140(%rbp), %rdi
callq 0x20f0
leaq -0x141(%rbp), %rdi
callq 0x21e0
movq 0x796f(%rip), %rdi      # 0x9fd8
leaq 0x39d0(%rip), %rsi      # 0x6040
callq 0x2180
movq %rax, -0x240(%rbp)
jmp 0x267e
movq -0x240(%rbp), %rdi
movq 0x7934(%rip), %rsi      # 0x9fc0
callq 0x21c0
movq %rax, -0x248(%rbp)
jmp 0x269a
movq -0x248(%rbp), %rsi
leaq -0x70(%rbp), %rdi
callq 0x2dc0
jmp 0x26ac
leaq -0x169(%rbp), %rdi
movq %rdi, -0x250(%rbp)
callq 0x2280
movq -0x250(%rbp), %rdx
leaq 0x3992(%rip), %rsi      # 0x605f
leaq -0x168(%rbp), %rdi
callq 0x2d10
jmp 0x26db
leaq -0x191(%rbp), %rdi
movq %rdi, -0x258(%rbp)
callq 0x2280
movq -0x258(%rbp), %rdx
leaq 0x396a(%rip), %rsi      # 0x6066
leaq -0x190(%rbp), %rdi
callq 0x2d10
jmp 0x270a
leaq -0x70(%rbp), %rdi
leaq -0x168(%rbp), %rsi
leaq -0x190(%rbp), %rdx
callq 0x2b50
jmp 0x2723
leaq -0x190(%rbp), %rdi
callq 0x20f0
leaq -0x191(%rbp), %rdi
callq 0x21e0
leaq -0x168(%rbp), %rdi
callq 0x20f0
leaq -0x169(%rbp), %rdi
callq 0x21e0
leaq -0x1b9(%rbp), %rdi
movq %rdi, -0x260(%rbp)
callq 0x2280
movq -0x260(%rbp), %rdx
leaq 0x38f9(%rip), %rsi      # 0x606d
leaq -0x1b8(%rbp), %rdi
callq 0x2d10
jmp 0x2782
leaq -0x1e1(%rbp), %rdi
movq %rdi, -0x268(%rbp)
callq 0x2280
movq -0x268(%rbp), %rdx
leaq 0x38cf(%rip), %rsi      # 0x6072
leaq -0x1e0(%rbp), %rdi
callq 0x2d10
jmp 0x27b1
leaq -0x70(%rbp), %rdi
leaq -0x1b8(%rbp), %rsi
leaq -0x1e0(%rbp), %rdx
callq 0x2b50
jmp 0x27ca
leaq -0x1e0(%rbp), %rdi
callq 0x20f0
leaq -0x1e1(%rbp), %rdi
callq 0x21e0
leaq -0x1b8(%rbp), %rdi
callq 0x20f0
leaq -0x1b9(%rbp), %rdi
callq 0x21e0
movq 0x77d7(%rip), %rdi      # 0x9fd8
leaq 0x386f(%rip), %rsi      # 0x6077
callq 0x2180
movq %rax, -0x270(%rbp)
jmp 0x2816
movq -0x270(%rbp), %rdi
movq 0x779c(%rip), %rsi      # 0x9fc0
callq 0x21c0
movq %rax, -0x278(%rbp)
jmp 0x2832
movq -0x278(%rbp), %rsi
leaq -0x70(%rbp), %rdi
callq 0x2dc0
jmp 0x2844
leaq -0x70(%rbp), %rdi
callq 0x3040
addq $0x280, %rsp            # imm = 0x280
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x28b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x289c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x20f0
leaq -0xc9(%rbp), %rdi
callq 0x21e0
leaq -0x90(%rbp), %rdi
callq 0x20f0
leaq -0x91(%rbp), %rdi
callq 0x21e0
jmp 0x2a64
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x2923
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x290b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x20f0
leaq -0x119(%rbp), %rdi
callq 0x21e0
leaq -0xf0(%rbp), %rdi
callq 0x20f0
leaq -0xf1(%rbp), %rdi
callq 0x21e0
jmp 0x2a64
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x2a64
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x297d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0x140(%rbp), %rdi
callq 0x20f0
leaq -0x141(%rbp), %rdi
callq 0x21e0
jmp 0x2a64
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x29ec
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x29d4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0x190(%rbp), %rdi
callq 0x20f0
leaq -0x191(%rbp), %rdi
callq 0x21e0
leaq -0x168(%rbp), %rdi
callq 0x20f0
leaq -0x169(%rbp), %rdi
callq 0x21e0
jmp 0x2a64
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x2a58
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x2a40
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x20f0
leaq -0x1e1(%rbp), %rdi
callq 0x21e0
leaq -0x1b8(%rbp), %rdi
callq 0x20f0
leaq -0x1b9(%rbp), %rdi
callq 0x21e0
leaq -0x70(%rbp), %rdi
callq 0x3040
movq -0xa0(%rbp), %rdi
callq 0x2270
nopl (%rax)