(ms_dataset: Dataset | DatasetDict,
oc_dataset: Dataset | DatasetDict,
sample_size)
| 174 | |
| 175 | |
| 176 | def _check_data(ms_dataset: Dataset | DatasetDict, |
| 177 | oc_dataset: Dataset | DatasetDict, |
| 178 | sample_size): |
| 179 | assert type(ms_dataset) == type( |
| 180 | oc_dataset |
| 181 | ), f'Dataset type not match: {type(ms_dataset)} != {type(oc_dataset)}' |
| 182 | |
| 183 | # match DatasetDict |
| 184 | if isinstance(oc_dataset, DatasetDict): |
| 185 | assert ms_dataset.keys() == oc_dataset.keys( |
| 186 | ), f'DatasetDict not match: {ms_dataset.keys()} != {oc_dataset.keys()}' |
| 187 | |
| 188 | for key in ms_dataset.keys(): |
| 189 | _check_data(ms_dataset[key], oc_dataset[key], sample_size=sample_size) |
| 190 | |
| 191 | elif isinstance(oc_dataset, Dataset): |
| 192 | # match by cols |
| 193 | assert set(ms_dataset.column_names) == set( |
| 194 | oc_dataset.column_names |
| 195 | ), f'Column names do not match: {ms_dataset.column_names} != {oc_dataset.column_names}' |
| 196 | |
| 197 | # Check that the number of rows is the same |
| 198 | assert len(ms_dataset) == len( |
| 199 | oc_dataset |
| 200 | ), f'Number of rows do not match: {len(ms_dataset)} != {len(oc_dataset)}' |
| 201 | |
| 202 | # Randomly sample indices |
| 203 | sample_indices = random.sample(range(len(ms_dataset)), |
| 204 | min(sample_size, len(ms_dataset))) |
| 205 | |
| 206 | for i, idx in enumerate(sample_indices): |
| 207 | for col in ms_dataset.column_names: |
| 208 | ms_value = clean_string(str(ms_dataset[col][idx])) |
| 209 | oc_value = clean_string(str(oc_dataset[col][idx])) |
| 210 | try: |
| 211 | assert ms_value == oc_value, f"Value mismatch in column '{col}', index {idx}: {ms_value} != {oc_value}" |
| 212 | except AssertionError as e: |
| 213 | print(f"Assertion failed for column '{col}', index {idx}") |
| 214 | print(f"ms_data: {ms_dataset[idx]}") |
| 215 | print(f'oc_data: {oc_dataset[idx]}') |
| 216 | print(f'ms_value: {ms_value} ({type(ms_value)})') |
| 217 | print(f'oc_value: {oc_value} ({type(oc_value)})') |
| 218 | raise e |
| 219 | else: |
| 220 | raise ValueError(f'Datasets type not supported {type(ms_dataset)}') |
| 221 | |
| 222 | |
| 223 | if __name__ == '__main__': |
no test coverage detected