static void BencTestArrayAppend() { BencArray *array = new BencArray(); for (size_t i = 1; i <= ITERATION_COUNT; i++) { array->Add(i); utassert(array->Length() == i); } array->Add(new BencDict()); for (size_t i = 1; i <= ITERATION_COUNT; i++) { BencInt *obj = array->GetInt(i - 1); utassert(obj && obj->Type() == BT_INT); utassert(obj->Value() == (int64_t)i); utassert(!array->GetString(i - 1)); utassert(!array->GetArray(i - 1)); utassert(!array->GetDict(i - 1)); } utassert(!array->GetInt(ITERATION_COUNT)); utassert(array->GetDict(ITERATION_COUNT)); BencTestRoundtrip(array); delete array->Remove(ITERATION_COUNT); delete array->Remove(0); delete array->Remove(ITERATION_COUNT + 13); utassert(array->Length() == ITERATION_COUNT - 1); utassert(array->GetInt(0)->Value() == 2); utassert(array->GetInt(ITERATION_COUNT - 2)->Value() == ITERATION_COUNT); BencTestRoundtrip(array); delete array; }