bool TestCppBase::TestEqualAsStr() { const int arr_len = 18; Variant var_array[arr_len]; var_array[0] = false; var_array[1] = true; var_array[2] = 0; var_array[3] = 1; var_array[4] = 42; var_array[5] = 0.0; var_array[6] = 1.0; var_array[7] = 42.2; var_array[8] = String("0"); var_array[9] = String("1"); var_array[10] = String("42"); var_array[11] = String("x"); var_array[12] = Array::Create(); Variant v1("original"); var_array[13] = v1; Variant v2("changed"); var_array[14] = v2; var_array[15] = empty_string; var_array[16] = String("Array"); var_array[17] = String("ARRAY"); for (int i = 0; i < arr_len; i++) { for (int j = 0; j < arr_len; j++) { bool eqAsStr = equalAsStr(var_array[i], var_array[j]); bool sm = same(toString(var_array[i]), toString(var_array[j])); VERIFY(eqAsStr == sm); } } return Count(true); }
bool equalAsStr(double v1, const StringData *v2) { return equalAsStr(v2, String(v1)); }
int Array::CompareAsStrings(CVarRef v1, CVarRef v2, const void *data) { return equalAsStr(v1, v2) ? 0 : -1; }
bool equalAsStr(short v1, const StringData *v2) { return equalAsStr((int)v1, v2); }