// File: dsharlet[P]array/test/shape.cpp
// Function: nda::test_shape_1d_dense_body()
TEST(shape_1d_dense) {
  dense_dim<> x(0, 10);
  shape<dense_dim<>> s(x);
  for (int i : x) {
    ASSERT_EQ(s(i), i);
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2a0, %rsp            # imm = 0x2A0
leaq -0x38(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
movl $0xa, %edx
movl $0x1, %ecx
callq 0x16d70
leaq -0x50(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x970b0
leaq -0x38(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rdi
callq 0x366c0
movq %rax, -0x60(%rbp)
movq -0x58(%rbp), %rdi
callq 0x366f0
movq %rax, -0x68(%rbp)
leaq -0x60(%rbp), %rax
movq %rax, -0x18(%rbp)
leaq -0x68(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq -0x20(%rbp), %rcx
cmpq (%rcx), %rax
je 0x179bac
leaq -0x60(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x6c(%rbp)
movl -0x6c(%rbp), %esi
leaq -0x50(%rbp), %rdi
callq 0x400b0
movslq -0x6c(%rbp), %rcx
subq %rcx, %rax
sete %al
movb %al, -0x249(%rbp)
leaq -0x221(%rbp), %rdi
movq %rdi, -0x248(%rbp)
callq 0x33b0
movq -0x248(%rbp), %rdx
leaq 0x818fd(%rip), %rsi     # 0x1fb2c0
leaq -0x220(%rbp), %rdi
callq 0x10a90
jmp 0x1799d1
movb -0x249(%rbp), %al
movzbl %al, %esi
andl $0x1, %esi
leaq -0x200(%rbp), %rdi
leaq -0x220(%rbp), %rdx
callq 0x10f80
jmp 0x1799f2
leaq 0x62dec(%rip), %rsi     # 0x1dc7e5
leaq -0x200(%rbp), %rdi
callq 0x34320
movq %rax, -0x258(%rbp)
jmp 0x179a0e
movq -0x258(%rbp), %rdi
leaq 0x6e0dc(%rip), %rsi     # 0x1e7af8
callq 0x34360
movq %rax, -0x260(%rbp)
jmp 0x179a2a
movq -0x260(%rbp), %rdi
leaq 0x66d74(%rip), %rsi     # 0x1e07ac
callq 0x34320
movq %rax, -0x268(%rbp)
jmp 0x179a46
movl -0x6c(%rbp), %esi
leaq -0x50(%rbp), %rdi
callq 0x400b0
movq %rax, -0x270(%rbp)
jmp 0x179a5b
movq -0x268(%rbp), %rdi
movq -0x270(%rbp), %rax
movq %rax, -0x240(%rbp)
leaq -0x240(%rbp), %rsi
callq 0x34510
movq %rax, -0x278(%rbp)
jmp 0x179a85
movq -0x278(%rbp), %rdi
leaq 0x62d52(%rip), %rsi     # 0x1dc7e5
callq 0x34320
movq %rax, -0x280(%rbp)
jmp 0x179aa1
movq -0x280(%rbp), %rdi
leaq 0x7ca11(%rip), %rsi     # 0x1f64c0
callq 0x34320
movq %rax, -0x288(%rbp)
jmp 0x179abd
movq -0x288(%rbp), %rdi
leaq 0x66ce1(%rip), %rsi     # 0x1e07ac
callq 0x34320
movq %rax, -0x290(%rbp)
jmp 0x179ad9
movq -0x290(%rbp), %rdi
leaq -0x6c(%rbp), %rsi
callq 0x343a0
movq %rax, -0x298(%rbp)
jmp 0x179af2
movq -0x298(%rbp), %rdi
leaq 0x7c97b(%rip), %rsi     # 0x1f647b
callq 0x34320
jmp 0x179b07
leaq -0x200(%rbp), %rdi
callq 0x10ff0
jmp 0x179b15
leaq -0x220(%rbp), %rdi
callq 0x3100
leaq -0x221(%rbp), %rdi
callq 0x3290
leaq -0x60(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rcx
addq $0x1, %rcx
movq %rcx, (%rax)
jmp 0x179951
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x230(%rbp)
movl %eax, -0x234(%rbp)
jmp 0x179b9e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x230(%rbp)
movl %eax, -0x234(%rbp)
jmp 0x179b92
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x230(%rbp)
movl %eax, -0x234(%rbp)
leaq -0x200(%rbp), %rdi
callq 0x10ff0
jmp 0x179b90
jmp 0x179b92
leaq -0x220(%rbp), %rdi
callq 0x3100
leaq -0x221(%rbp), %rdi
callq 0x3290
jmp 0x179bb5
addq $0x2a0, %rsp            # imm = 0x2A0
popq %rbp
retq
movq -0x230(%rbp), %rdi
callq 0x33a0
movq %rax, %rdi
callq 0x116d0
nopl (%rax)