import { assert } from '../../../../common/util/util.js';import { AllFeaturesMaxLimitsGPUTest } from '../../../gpu_test.js';export class MappingTest extends AllFeaturesMaxLimitsGPUTest {checkMapWrite(buffer: GPUBuffer,offset: number,mappedContents: ArrayBuffer,size: number): void {this.checkMapWriteZeroed(mappedContents, size);const mappedView = new Uint32Array(mappedContents);const expected = new Uint32Array(new ArrayBuffer(size));assert(mappedView.byteLength === size);for (let i = 0; i < mappedView.length; ++i) {mappedView[i] = expected[i] = i + 1;}buffer.unmap();this.expectGPUBufferValuesEqual(buffer, expected, offset);}checkMapWriteZeroed(arrayBuffer: ArrayBuffer, expectedSize: number): void {this.expect(arrayBuffer.byteLength === expectedSize);const view = new Uint8Array(arrayBuffer);this.expectZero(view);}expectZero(actual: Uint8Array): void {const size = actual.byteLength;for (let i = 0; i < size; ++i) {if (actual[i] !== 0) {this.fail(`at [${i}], expected zero, got ${actual[i]}`);break;}}}}