void OrderedOfString_frequency (OrderedOfString me, OrderedOfString thee, long *count) { for (long i = 1; i <= my size; i++) { for (long j = 1; j <= thy size; j++) { if (Data_equal ( (Daata) my item[i], (Daata) thy item[j])) { count[j]++; break; } } } }
long OrderedOfString_indexOfItem_c (OrderedOfString me, const char32 *str) { long index = 0; autoSimpleString s = SimpleString_create (str); for (long i = 1; i <= my size; i++) { if (Data_equal ( (Daata) my item[i], s.peek())) { index = i; break; } } return index; }
void OrderedOfString_frequency (I, thou, long *count) { iam (OrderedOfString); thouart (OrderedOfString); for (long i = 1; i <= my size; i++) { for (long j = 1; j <= thy size; j++) { if (Data_equal ( (Data) my item[i], (Data) thy item[j])) { count[j]++; break; } } } }
long OrderedOfString_getNumberOfDifferences (OrderedOfString me, OrderedOfString thee) { long numberOfDifferences = 0; if (my size != thy size) { return -1; } for (long i = 1; i <= my size; i++) { if (! Data_equal ( (SimpleString) my item[i], (SimpleString) thy item[i])) { numberOfDifferences++; } } return numberOfDifferences; }
int OrderedOfString_difference (OrderedOfString me, OrderedOfString thee, long *ndif, double *fraction) { *ndif = 0; *fraction = 1; if (my size != thy size) { Melder_flushError (U"OrderedOfString_difference: the number of items differ"); return 0; } for (long i = 1; i <= my size; i++) { if (! Data_equal ( (SimpleString) my item[i], (SimpleString) thy item[i])) { (*ndif) ++; } } *fraction = *ndif; *fraction /= my size; return 1; }
long OrderedOfString_isSubsetOf (OrderedOfString me, OrderedOfString thee, long *translation) { // ?? test and give number long nStrings = 0; for (long i = 1; i <= my size; i++) { if (translation) { translation[i] = 0; } for (long j = 1; j <= thy size; j++) if (Data_equal ( (SimpleString) my item[i], (SimpleString) thy item[j])) { if (translation) { translation[i] = j; } nStrings++; break; } } return nStrings; }
bool _CollectionOfDaata_v_equal (_CollectionOfDaata* me, _CollectionOfDaata* thee) { if (! my structDaata :: v_equal (thee)) return false; if (my size != thy size) return false; for (long i = 1; i <= my size; i ++) { if (! Thing_isa (my at [i], classDaata)) Melder_throw (U"Collection::equal: " U"cannot compare items of class ", Thing_className (my at [i]), U"."); if (! Thing_isa (thy at [i], classDaata)) Melder_throw (U"Collection::equal: " U"cannot compare items of class ", Thing_className (thy at [i]), U"."); bool equal = Data_equal (my at [i], thy at [i]); //Melder_casual (U"classCollection_equal: ", equal, // U", item ", i, // U", types ", Thing_className (my item [i]), U" and ", Thing_className (thy item [i])); if (! equal) return false; } return true; }