void testMemMan1(cds_word n, cds_word len) {
  MemoryManager *m = new MemoryManager(len,  1024);
  MemoryAddress **a = new MemoryAddress*[n];

  for (cds_word i = 0; i < n; i++) {
    a[i] = m->Alloc(len);
    m->SetData(a[i], &i);
    cds_word num = 0;
    m->GetData(a[i], &num);
    ASSERT_EQ(i, num);
    MemoryAddress *ptr = cds::dynamic::GetPtr(a[i]->ptr, a[i]->len, a[i]->offset);
    ASSERT_EQ(a[i], ptr);
  }
  for (cds_word i = 0; i < n; i++) {
    MemoryAddress *ptr = cds::dynamic::GetPtr(a[i]->ptr, a[i]->len, a[i]->offset);
    ASSERT_EQ(a[i], ptr);
  }

  for (cds_word i = 0; i < n; i++) {
    MemoryAddress *ptr = cds::dynamic::GetPtr(a[i]->ptr, a[i]->len, a[i]->offset);
    ASSERT_EQ(a[i], ptr);
    cds_word num = 0;
    m->GetData(a[i], &num);
    ASSERT_EQ(i, num);
    m->Free(a[i]);
    delete a[i];
  }

  delete []a;
  delete m;
}