Skip to content

test: Split tests into internal and not-internal tests#2638

Open
iwoplaza wants to merge 3 commits into
mainfrom
test/test-built-package
Open

test: Split tests into internal and not-internal tests#2638
iwoplaza wants to merge 3 commits into
mainfrom
test/test-built-package

Conversation

@iwoplaza

@iwoplaza iwoplaza commented Jun 19, 2026

Copy link
Copy Markdown
Collaborator

Blocked by #2642

@github-actions

github-actions Bot commented Jun 19, 2026

Copy link
Copy Markdown

pkg.pr.new

packages
Ready to be installed by your favorite package manager ⬇️

https://pkg.pr.new/software-mansion/TypeGPU/typegpu@fe70f18d9f1eba9a40215c40188716cf77ca2e66
https://pkg.pr.new/software-mansion/TypeGPU/@typegpu/cli@fe70f18d9f1eba9a40215c40188716cf77ca2e66
https://pkg.pr.new/software-mansion/TypeGPU/@typegpu/noise@fe70f18d9f1eba9a40215c40188716cf77ca2e66
https://pkg.pr.new/software-mansion/TypeGPU/@typegpu/react@fe70f18d9f1eba9a40215c40188716cf77ca2e66
https://pkg.pr.new/software-mansion/TypeGPU/unplugin-typegpu@fe70f18d9f1eba9a40215c40188716cf77ca2e66

benchmark
view benchmark

commit
view commit

@github-actions

github-actions Bot commented Jun 19, 2026

Copy link
Copy Markdown

Bundle size comparison (import * as ... in PR vs import * as ... in target):

🟢 Decreased ➖ Unchanged 🔴 Increased ❔ Unknown
0 299 21 0

import { ... } in PR vs import * as ... in PR (is the library tree-Shakeable?):

Click to reveal the results table (297 entries).
Test tsdown
d_Void.ts 87.36 kB ($${\color{red}+12087.6\%}$$)
d_sampler.ts 87.36 kB ($${\color{red}+11956.6\%}$$)
d_isPtr.ts 87.36 kB ($${\color{red}+11796.0\%}$$)
d_comparisonSampler.ts 87.37 kB ($${\color{red}+11781.8\%}$$)
d_isSizeAttrib.ts 87.37 kB ($${\color{red}+11765.4\%}$$)
d_isWgslArray.ts 87.37 kB ($${\color{red}+11765.3\%}$$)
d_isAlignAttrib.ts 87.37 kB ($${\color{red}+11749.8\%}$$)
d_isWgslStruct.ts 87.37 kB ($${\color{red}+11749.7\%}$$)
d_isAtomic.ts 87.36 kB ($${\color{red}+11749.1\%}$$)
d_isBuiltinAttrib.ts 87.37 kB ($${\color{red}+11718.8\%}$$)
d_isLocationAttrib.ts 87.37 kB ($${\color{red}+11703.3\%}$$)
d_isDecorated.ts 87.37 kB ($${\color{red}+11702.6\%}$$)
d_isInterpolateAttrib.ts 87.38 kB ($${\color{red}+11657.2\%}$$)
d_atomic.ts 87.36 kB ($${\color{red}+11383.8\%}$$)
d_ptrHandle.ts 87.37 kB ($${\color{red}+10412.6\%}$$)
d_ptrUniform.ts 87.37 kB ($${\color{red}+10400.4\%}$$)
d_ptrStorage.ts 87.37 kB ($${\color{red}+10351.3\%}$$)
d_ptrPrivate.ts 87.37 kB ($${\color{red}+10326.9\%}$$)
d_ptrFn.ts 87.36 kB ($${\color{red}+10314.2\%}$$)
d_ptrWorkgroup.ts 87.37 kB ($${\color{red}+10302.9\%}$$)
d_textureExternal.ts 87.37 kB ($${\color{red}+10148.3\%}$$)
d_textureStorage1d.ts 87.37 kB ($${\color{red}+8527.7\%}$$)
d_textureStorage2d.ts 87.37 kB ($${\color{red}+8527.7\%}$$)
d_textureStorage3d.ts 87.37 kB ($${\color{red}+8527.7\%}$$)
d_textureStorage2dArray.ts 87.38 kB ($${\color{red}+8380.9\%}$$)
d_isDisarray.ts 87.37 kB ($${\color{red}+7754.5\%}$$)
d_isUnstruct.ts 87.37 kB ($${\color{red}+7754.5\%}$$)
d_isLooseDecorated.ts 87.37 kB ($${\color{red}+7707.1\%}$$)
d_isLooseData.ts 87.37 kB ($${\color{red}+7443.3\%}$$)
d_isWgslData.ts 87.37 kB ($${\color{red}+6566.4\%}$$)
d_unstruct.ts 87.36 kB ($${\color{red}+5544.2\%}$$)
d_isData.ts 87.36 kB ($${\color{red}+4733.0\%}$$)
d_deepEqual.ts 87.37 kB ($${\color{red}+3884.9\%}$$)
d_struct.ts 87.36 kB ($${\color{red}+2323.7\%}$$)
d_ref.ts 87.36 kB ($${\color{red}+1724.5\%}$$)
std_discard.ts 103.09 kB ($${\color{red}+626.6\%}$$)
std_copy.ts 103.09 kB ($${\color{red}+614.4\%}$$)
std_arrayLength.ts 103.10 kB ($${\color{red}+614.2\%}$$)
std_isBeingTranspiled.ts 103.10 kB ($${\color{red}+612.7\%}$$)
std_getTargetShaderLanguage.ts 103.11 kB ($${\color{red}+609.5\%}$$)
std_extensionEnabled.ts 103.10 kB ($${\color{red}+607.0\%}$$)
std_range.ts 103.09 kB ($${\color{red}+594.2\%}$$)
std_dpdx.ts 103.09 kB ($${\color{red}+585.8\%}$$)
std_fwidthCoarse.ts 103.10 kB ($${\color{red}+585.6\%}$$)
std_dpdxCoarse.ts 103.10 kB ($${\color{red}+585.6\%}$$)
std_dpdyCoarse.ts 103.10 kB ($${\color{red}+585.6\%}$$)
std_fwidthFine.ts 103.10 kB ($${\color{red}+585.6\%}$$)
std_dpdxFine.ts 103.09 kB ($${\color{red}+585.6\%}$$)
std_dpdyFine.ts 103.09 kB ($${\color{red}+585.6\%}$$)
std_fwidth.ts 103.09 kB ($${\color{red}+585.6\%}$$)
std_dpdy.ts 103.09 kB ($${\color{red}+585.6\%}$$)
d_bool.ts 87.36 kB ($${\color{red}+573.3\%}$$)
d_f16.ts 87.36 kB ($${\color{red}+573.3\%}$$)
d_f32.ts 87.36 kB ($${\color{red}+573.3\%}$$)
d_i32.ts 87.36 kB ($${\color{red}+573.3\%}$$)
d_u32.ts 87.36 kB ($${\color{red}+573.3\%}$$)
d_u16.ts 87.36 kB ($${\color{red}+572.1\%}$$)
std_atomicLoad.ts 103.10 kB ($${\color{red}+553.0\%}$$)
std_textureBarrier.ts 103.10 kB ($${\color{red}+552.8\%}$$)
std_atomicStore.ts 103.10 kB ($${\color{red}+552.8\%}$$)
std_workgroupBarrier.ts 103.10 kB ($${\color{red}+552.5\%}$$)
std_storageBarrier.ts 103.10 kB ($${\color{red}+552.5\%}$$)
std_atomicAdd.ts 103.09 kB ($${\color{red}+552.5\%}$$)
std_atomicAnd.ts 103.09 kB ($${\color{red}+552.5\%}$$)
std_atomicMax.ts 103.09 kB ($${\color{red}+552.5\%}$$)
std_atomicMin.ts 103.09 kB ($${\color{red}+552.5\%}$$)
std_atomicSub.ts 103.09 kB ($${\color{red}+552.5\%}$$)
std_atomicXor.ts 103.09 kB ($${\color{red}+552.5\%}$$)
std_atomicOr.ts 103.09 kB ($${\color{red}+552.5\%}$$)
d_textureDepth2d.ts 87.37 kB ($${\color{red}+551.1\%}$$)
d_textureDepthCube.ts 87.37 kB ($${\color{red}+550.9\%}$$)
d_texture1d.ts 87.37 kB ($${\color{red}+550.6\%}$$)
d_texture2d.ts 87.37 kB ($${\color{red}+550.6\%}$$)
d_texture3d.ts 87.37 kB ($${\color{red}+550.6\%}$$)
d_textureDepth2dArray.ts 87.38 kB ($${\color{red}+550.3\%}$$)
d_textureCube.ts 87.37 kB ($${\color{red}+550.3\%}$$)
d_textureDepthCubeArray.ts 87.38 kB ($${\color{red}+550.1\%}$$)
d_textureDepthMultisampled2d.ts 87.38 kB ($${\color{red}+550.0\%}$$)
d_texture2dArray.ts 87.37 kB ($${\color{red}+549.8\%}$$)
d_textureCubeArray.ts 87.37 kB ($${\color{red}+549.5\%}$$)
d_textureMultisampled2d.ts 87.38 kB ($${\color{red}+549.4\%}$$)
d_disarrayOf.ts 87.37 kB ($${\color{red}+481.7\%}$$)
d_vec2b.ts 87.36 kB ($${\color{red}+350.2\%}$$)
d_vec2f.ts 87.36 kB ($${\color{red}+350.2\%}$$)
d_vec2h.ts 87.36 kB ($${\color{red}+350.2\%}$$)
d_vec2i.ts 87.36 kB ($${\color{red}+350.2\%}$$)
d_vec2u.ts 87.36 kB ($${\color{red}+350.2\%}$$)
d_vec3b.ts 87.36 kB ($${\color{red}+350.2\%}$$)
d_vec3f.ts 87.36 kB ($${\color{red}+350.2\%}$$)
d_vec3h.ts 87.36 kB ($${\color{red}+350.2\%}$$)
d_vec3i.ts 87.36 kB ($${\color{red}+350.2\%}$$)
d_vec3u.ts 87.36 kB ($${\color{red}+350.2\%}$$)
d_vec4b.ts 87.36 kB ($${\color{red}+350.2\%}$$)
d_vec4f.ts 87.36 kB ($${\color{red}+350.2\%}$$)
d_vec4h.ts 87.36 kB ($${\color{red}+350.2\%}$$)
d_vec4i.ts 87.36 kB ($${\color{red}+350.2\%}$$)
d_vec4u.ts 87.36 kB ($${\color{red}+350.2\%}$$)
std_subgroupAdd.ts 103.10 kB ($${\color{red}+329.9\%}$$)
std_subgroupBroadcastFirst.ts 103.11 kB ($${\color{red}+329.8\%}$$)
std_subgroupExclusiveAdd.ts 103.11 kB ($${\color{red}+329.8\%}$$)
std_subgroupExclusiveMul.ts 103.11 kB ($${\color{red}+329.8\%}$$)
std_subgroupInclusiveAdd.ts 103.11 kB ($${\color{red}+329.8\%}$$)
std_subgroupInclusiveMul.ts 103.11 kB ($${\color{red}+329.8\%}$$)
std_subgroupShuffleDown.ts 103.10 kB ($${\color{red}+329.8\%}$$)
std_subgroupShuffleXor.ts 103.10 kB ($${\color{red}+329.8\%}$$)
std_subgroupBroadcast.ts 103.10 kB ($${\color{red}+329.8\%}$$)
std_subgroupShuffleUp.ts 103.10 kB ($${\color{red}+329.8\%}$$)
std_subgroupShuffle.ts 103.10 kB ($${\color{red}+329.8\%}$$)
std_subgroupBallot.ts 103.10 kB ($${\color{red}+329.8\%}$$)
std_subgroupElect.ts 103.10 kB ($${\color{red}+329.8\%}$$)
std_subgroupAll.ts 103.10 kB ($${\color{red}+329.8\%}$$)
std_subgroupAnd.ts 103.10 kB ($${\color{red}+329.8\%}$$)
std_subgroupAny.ts 103.10 kB ($${\color{red}+329.8\%}$$)
std_subgroupMax.ts 103.10 kB ($${\color{red}+329.8\%}$$)
std_subgroupMin.ts 103.10 kB ($${\color{red}+329.8\%}$$)
std_subgroupMul.ts 103.10 kB ($${\color{red}+329.8\%}$$)
std_subgroupXor.ts 103.10 kB ($${\color{red}+329.8\%}$$)
std_subgroupOr.ts 103.10 kB ($${\color{red}+329.8\%}$$)
d_formatToWGSLType.ts 87.37 kB ($${\color{red}+318.1\%}$$)
d_uint8.ts 87.36 kB ($${\color{red}+318.0\%}$$)
d_unorm10_10_10_2.ts 87.37 kB ($${\color{red}+317.9\%}$$)
d_unorm8x4_bgra.ts 87.37 kB ($${\color{red}+317.9\%}$$)
d_float16x2.ts 87.37 kB ($${\color{red}+317.9\%}$$)
d_float16x4.ts 87.37 kB ($${\color{red}+317.9\%}$$)
d_float32x2.ts 87.37 kB ($${\color{red}+317.9\%}$$)
d_float32x3.ts 87.37 kB ($${\color{red}+317.9\%}$$)
d_float32x4.ts 87.37 kB ($${\color{red}+317.9\%}$$)
d_snorm16x2.ts 87.37 kB ($${\color{red}+317.9\%}$$)
d_snorm16x4.ts 87.37 kB ($${\color{red}+317.9\%}$$)
d_unorm16x2.ts 87.37 kB ($${\color{red}+317.9\%}$$)
d_unorm16x4.ts 87.37 kB ($${\color{red}+317.9\%}$$)
d_sint16x2.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_sint16x4.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_sint32x2.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_sint32x3.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_sint32x4.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_snorm8x2.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_snorm8x4.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_uint16x2.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_uint16x4.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_uint32x2.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_uint32x3.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_uint32x4.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_unorm8x2.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_unorm8x4.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_float16.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_float32.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_sint8x2.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_sint8x4.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_snorm16.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_uint8x2.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_uint8x4.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_unorm16.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_sint16.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_sint32.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_snorm8.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_uint16.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_uint32.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_unorm8.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_sint8.ts 87.36 kB ($${\color{red}+317.9\%}$$)
d_packedFormats.ts 87.37 kB ($${\color{red}+317.5\%}$$)
d_isPackedData.ts 87.37 kB ($${\color{red}+316.7\%}$$)
std_textureDimensions.ts 103.10 kB ($${\color{red}+300.6\%}$$)
std_textureGather.ts 103.10 kB ($${\color{red}+300.6\%}$$)
std_textureSampleBaseClampToEdge.ts 103.11 kB ($${\color{red}+300.5\%}$$)
std_textureSampleCompareLevel.ts 103.11 kB ($${\color{red}+300.5\%}$$)
std_textureSampleCompare.ts 103.11 kB ($${\color{red}+300.5\%}$$)
std_textureSampleLevel.ts 103.10 kB ($${\color{red}+300.5\%}$$)
std_textureSampleBias.ts 103.10 kB ($${\color{red}+300.5\%}$$)
std_textureSampleGrad.ts 103.10 kB ($${\color{red}+300.5\%}$$)
std_textureSample.ts 103.10 kB ($${\color{red}+300.5\%}$$)
std_textureStore.ts 103.10 kB ($${\color{red}+300.5\%}$$)
std_textureLoad.ts 103.10 kB ($${\color{red}+300.5\%}$$)
d_alignmentOf.ts 87.37 kB ($${\color{red}+299.8\%}$$)
std_translation4.ts 103.10 kB ($${\color{red}+282.0\%}$$)
std_rotationX4.ts 103.10 kB ($${\color{red}+282.0\%}$$)
std_rotationY4.ts 103.10 kB ($${\color{red}+282.0\%}$$)
std_rotationZ4.ts 103.10 kB ($${\color{red}+282.0\%}$$)
std_identity2.ts 103.09 kB ($${\color{red}+282.0\%}$$)
std_identity3.ts 103.09 kB ($${\color{red}+282.0\%}$$)
std_identity4.ts 103.09 kB ($${\color{red}+282.0\%}$$)
std_scaling4.ts 103.09 kB ($${\color{red}+282.0\%}$$)
d_isBuiltin.ts 87.37 kB ($${\color{red}+255.5\%}$$)
d_sizeOf.ts 87.36 kB ($${\color{red}+254.8\%}$$)
d_isContiguous.ts 87.37 kB ($${\color{red}+254.7\%}$$)
d_getLongestContiguousPrefix.ts 87.38 kB ($${\color{red}+254.6\%}$$)
d_arrayOf.ts 87.36 kB ($${\color{red}+233.8\%}$$)
d_size.ts 87.36 kB ($${\color{red}+232.0\%}$$)
d_align.ts 87.36 kB ($${\color{red}+232.0\%}$$)
d_location.ts 87.36 kB ($${\color{red}+232.0\%}$$)
d_interpolate.ts 87.37 kB ($${\color{red}+232.0\%}$$)
d_invariant.ts 87.37 kB ($${\color{red}+227.4\%}$$)
d_mat4x4f.ts 87.36 kB ($${\color{red}+223.7\%}$$)
d_mat2x2f.ts 87.36 kB ($${\color{red}+223.7\%}$$)
d_mat3x3f.ts 87.36 kB ($${\color{red}+223.7\%}$$)
d_matToArray.ts 87.37 kB ($${\color{red}+222.1\%}$$)
d_builtin.ts 87.36 kB ($${\color{red}+205.1\%}$$)
std_unpack2x16float.ts 103.10 kB ($${\color{red}+186.8\%}$$)
std_unpack4x8unorm.ts 103.10 kB ($${\color{red}+186.8\%}$$)
std_pack2x16float.ts 103.10 kB ($${\color{red}+186.8\%}$$)
std_pack4x8unorm.ts 103.10 kB ($${\color{red}+186.8\%}$$)
std_bitcastU32toF32.ts 103.10 kB ($${\color{red}+133.3\%}$$)
std_bitcastU32toI32.ts 103.10 kB ($${\color{red}+133.3\%}$$)
std_neg.ts 103.09 kB ($${\color{red}+113.2\%}$$)
std_bitShiftRight.ts 103.10 kB ($${\color{red}+113.2\%}$$)
std_bitShiftLeft.ts 103.10 kB ($${\color{red}+113.2\%}$$)
std_add.ts 103.09 kB ($${\color{red}+113.1\%}$$)
std_div.ts 103.09 kB ($${\color{red}+113.1\%}$$)
std_mod.ts 103.09 kB ($${\color{red}+113.1\%}$$)
std_mul.ts 103.09 kB ($${\color{red}+113.1\%}$$)
std_sub.ts 103.09 kB ($${\color{red}+113.1\%}$$)
std_translate4.ts 103.10 kB ($${\color{red}+109.9\%}$$)
std_rotateX4.ts 103.09 kB ($${\color{red}+109.9\%}$$)
std_scale4.ts 103.09 kB ($${\color{red}+109.9\%}$$)
std_rotateY4.ts 103.09 kB ($${\color{red}+109.8\%}$$)
std_rotateZ4.ts 103.09 kB ($${\color{red}+109.8\%}$$)
d_memoryLayoutOf.ts 87.37 kB ($${\color{red}+108.3\%}$$)
std_and.ts 103.09 kB ($${\color{red}+99.3\%}$$)
std_or.ts 103.09 kB ($${\color{red}+99.3\%}$$)
std_select.ts 103.09 kB ($${\color{red}+99.2\%}$$)
std_allEq.ts 103.09 kB ($${\color{red}+99.2\%}$$)
std_all.ts 103.09 kB ($${\color{red}+99.2\%}$$)
std_not.ts 103.09 kB ($${\color{red}+99.2\%}$$)
std_eq.ts 103.09 kB ($${\color{red}+99.2\%}$$)
std_lt.ts 103.09 kB ($${\color{red}+99.2\%}$$)
std_ne.ts 103.09 kB ($${\color{red}+99.2\%}$$)
std_isCloseTo.ts 103.09 kB ($${\color{red}+99.2\%}$$)
std_any.ts 103.09 kB ($${\color{red}+99.2\%}$$)
std_ge.ts 103.09 kB ($${\color{red}+99.2\%}$$)
std_gt.ts 103.09 kB ($${\color{red}+99.2\%}$$)
std_le.ts 103.09 kB ($${\color{red}+99.2\%}$$)
std_dot4U8Packed.ts 103.10 kB ($${\color{red}+56.2\%}$$)
std_length.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_countTrailingZeros.ts 103.10 kB ($${\color{red}+56.2\%}$$)
std_distance.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_dot.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_countLeadingZeros.ts 103.10 kB ($${\color{red}+56.2\%}$$)
std_firstTrailingBit.ts 103.10 kB ($${\color{red}+56.2\%}$$)
std_firstLeadingBit.ts 103.10 kB ($${\color{red}+56.2\%}$$)
std_fract.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_frexp.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_modf.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_quantizeToF16.ts 103.10 kB ($${\color{red}+56.2\%}$$)
std_mix.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_countOneBits.ts 103.10 kB ($${\color{red}+56.2\%}$$)
std_dot4I8Packed.ts 103.10 kB ($${\color{red}+56.2\%}$$)
std_determinant.ts 103.10 kB ($${\color{red}+56.2\%}$$)
std_extractBits.ts 103.10 kB ($${\color{red}+56.2\%}$$)
std_faceForward.ts 103.10 kB ($${\color{red}+56.2\%}$$)
std_inverseSqrt.ts 103.10 kB ($${\color{red}+56.2\%}$$)
std_reverseBits.ts 103.10 kB ($${\color{red}+56.2\%}$$)
std_insertBits.ts 103.10 kB ($${\color{red}+56.2\%}$$)
std_smoothstep.ts 103.10 kB ($${\color{red}+56.2\%}$$)
std_normalize.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_transpose.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_saturate.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_degrees.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_radians.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_reflect.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_refract.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_acosh.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_asinh.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_atan2.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_atanh.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_clamp.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_cross.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_floor.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_ldexp.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_round.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_trunc.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_acos.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_asin.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_atan.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_ceil.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_cosh.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_exp2.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_log2.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_sign.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_sinh.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_sqrt.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_step.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_tanh.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_abs.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_cos.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_exp.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_fma.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_log.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_max.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_min.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_pow.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_sin.ts 103.09 kB ($${\color{red}+56.2\%}$$)
std_tan.ts 103.09 kB ($${\color{red}+56.2\%}$$)
common_fullScreenTriangle.ts 56.66 kB ($${\color{red}+42.1\%}$$)
common_writeSoA.ts 56.65 kB ($${\color{red}+37.5\%}$$)
STATIC_allImports.ts 286.46 kB ($${\color{green}-1.7\%}$$)
STATIC_d.ts 87.36 kB ($${\color{green}-2.6\%}$$)
STATIC_std.ts 103.08 kB ($${\color{green}-2.7\%}$$)

If you wish to run a comparison for other, slower bundlers, run the 'Tree-shake test' from the GitHub Actions menu.

@github-actions

github-actions Bot commented Jun 19, 2026

Copy link
Copy Markdown

Resolution Time Benchmark

---
config:
  themeVariables:
    xyChart:
      plotColorPalette: "#E63946, #3B82F6, #059669"
---
xychart
  title "Random Branching (🔴 PR | 🔵 main | 🟢 release)"
  x-axis "max depth" [1, 2, 3, 4, 5, 6, 7, 8]
  y-axis "time (ms)"
  line [0.83, 1.68, 3.84, 5.48, 6.46, 10.79, 19.11, 22.25]
  line [0.88, 1.64, 3.55, 5.86, 6.27, 9.88, 18.36, 22.22]
  line [0.86, 1.70, 3.62, 5.26, 6.44, 9.78, 19.37, 22.60]
Loading
---
config:
  themeVariables:
    xyChart:
      plotColorPalette: "#E63946, #3B82F6, #059669"
---
xychart
  title "Linear Recursion (🔴 PR | 🔵 main | 🟢 release)"
  x-axis "max depth" [1, 2, 3, 4, 5, 6, 7, 8]
  y-axis "time (ms)"
  line [0.32, 0.47, 0.64, 0.82, 1.07, 1.06, 1.26, 1.38]
  line [0.32, 0.47, 0.62, 0.69, 0.97, 1.07, 1.27, 1.39]
  line [0.28, 0.50, 0.65, 0.76, 1.10, 1.12, 1.48, 1.44]
Loading
---
config:
  themeVariables:
    xyChart:
      plotColorPalette: "#E63946, #3B82F6, #059669"
---
xychart
  title "Full Tree (🔴 PR | 🔵 main | 🟢 release)"
  x-axis "max depth" [1, 2, 3, 4, 5, 6, 7, 8]
  y-axis "time (ms)"
  line [0.83, 2.05, 4.07, 7.40, 10.61, 22.63, 47.22, 98.47]
  line [0.71, 1.76, 3.68, 5.64, 10.79, 22.60, 46.97, 99.03]
  line [0.72, 1.86, 3.32, 5.37, 10.34, 21.66, 48.71, 100.80]
Loading

@iwoplaza iwoplaza force-pushed the test/test-built-package branch 4 times, most recently from 2f0da2f to ea6bc46 Compare June 22, 2026 18:19
@iwoplaza iwoplaza changed the title test: Test built package test: Split tests into internal and not-internal tests Jun 23, 2026
@iwoplaza iwoplaza force-pushed the test/test-built-package branch 4 times, most recently from 1ef6b9a to 82d6c38 Compare June 23, 2026 10:32
@iwoplaza iwoplaza marked this pull request as ready for review June 23, 2026 11:22

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR reorganizes the typegpu test suite by separating “internal” tests (which import from src/** internals) from public API tests (which import from typegpu, typegpu/data, typegpu/std, etc.), while also aligning compiled writer behavior with the non-compiled path (fail early on runtime-sized array schemas).

Changes:

  • Updated most tests to import exclusively from the public entrypoints (typegpu, typegpu/data, typegpu/std, typegpu/common).
  • Moved a set of internal/whitebox tests (e.g. connectAttributesToShader, query set internals, vertex attribute utility types, render pipeline internals) into packages/typegpu/tests/internal/**.
  • Added an early error in buildWriter() for runtime-sized array/disarray schemas (matching the non-compiled writer behavior).

Reviewed changes

Copilot reviewed 159 out of 160 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
packages/typegpu/tests/wgpuMatrixIntegration.test.ts Switches data imports to the public typegpu/data entrypoint.
packages/typegpu/tests/vertexLayout.test.ts Keeps public vertexLayout behavior tests; moves type-level/internal tests out.
packages/typegpu/tests/vector.test.ts Migrates IO/helpers to public typegpu APIs (readFromArrayBuffer/writeToArrayBuffer).
packages/typegpu/tests/variable.test.ts Uses public exports for TgpuVar / VariableScope.
packages/typegpu/tests/unstruct.test.ts Migrates IO to public ArrayBuffer IO helpers and public data entrypoint.
packages/typegpu/tests/unroll.test.ts Updates imports to public entrypoints.
packages/typegpu/tests/unplugin/autoname.test.ts Refactors autoname assertions away from internal getName to public observable behavior.
packages/typegpu/tests/tgslFn.test.ts Uses public entrypoints; asserts names via resolved WGSL output.
packages/typegpu/tests/tgsl/wgslGenerator.test.ts Updates import to typegpu.
packages/typegpu/tests/tgsl/typeInference.test.ts Updates import to typegpu.
packages/typegpu/tests/tgsl/ternaryOperator.test.ts Updates import to typegpu.
packages/typegpu/tests/tgsl/shellless.test.ts Updates import to typegpu.
packages/typegpu/tests/tgsl/rawCodeSnippet.test.ts Updates import to typegpu.
packages/typegpu/tests/tgsl/operatorOverloads.test.ts Updates import to typegpu.
packages/typegpu/tests/tgsl/nameClashes.test.ts Updates import to typegpu.
packages/typegpu/tests/tgsl/multiplication.test.ts Updates import to typegpu.
packages/typegpu/tests/tgsl/memberAccess.test.ts Updates import to typegpu.
packages/typegpu/tests/tgsl/infixOperators.test.ts Updates import to typegpu.
packages/typegpu/tests/tgsl/extensionEnabled.test.ts Updates import to typegpu.
packages/typegpu/tests/tgsl/entryFnParamPruning.test.ts Updates import to typegpu.
packages/typegpu/tests/tgsl/conversion.test.ts Updates import to typegpu.
packages/typegpu/tests/tgsl/consoleLog.test.ts Updates import to typegpu.
packages/typegpu/tests/tgsl/comptime.test.ts Updates import to typegpu.
packages/typegpu/tests/tgsl/codeGen.test.ts Updates import to typegpu.
packages/typegpu/tests/tgsl/assignment.test.ts Updates import to typegpu.
packages/typegpu/tests/tgsl/argumentOrigin.test.ts Updates import to typegpu.
packages/typegpu/tests/tgpuGenericFn.test.ts Updates imports to public entrypoints.
packages/typegpu/tests/texture.test.ts Updates to public types/entrypoints; switches name assertions to runtime labels.
packages/typegpu/tests/swizzleMixedValidation.test.ts Updates import to typegpu.
packages/typegpu/tests/struct.test.ts Migrates IO to ArrayBuffer helpers and public typegpu/std imports.
packages/typegpu/tests/std/texture/textureSample.test.ts Uses public typegpu/std + public tgpu.fn/layout helpers.
packages/typegpu/tests/std/texture/textureLoad.test.ts Uses public typegpu/std and tgpu.resolve.
packages/typegpu/tests/std/texture/textureGather.test.ts Uses public typegpu/std and tgpu.resolve.
packages/typegpu/tests/std/range.test.ts Collapses imports to typegpu public exports.
packages/typegpu/tests/std/packing.test.ts Uses public typegpu/data and typegpu/std.
packages/typegpu/tests/std/numeric/sub.test.ts Uses public typegpu/data and typegpu/std.
packages/typegpu/tests/std/numeric/smoothstep.test.ts Uses public typegpu/data and typegpu/std.
packages/typegpu/tests/std/numeric/sign.test.ts Uses public typegpu/data and typegpu/std.
packages/typegpu/tests/std/numeric/round.test.ts Uses public typegpu.
packages/typegpu/tests/std/numeric/reflect.test.ts Uses public typegpu/data and typegpu/std.
packages/typegpu/tests/std/numeric/pow.test.ts Uses public typegpu/data and typegpu/std.
packages/typegpu/tests/std/numeric/normalize.test.ts Uses public typegpu/data and typegpu/std.
packages/typegpu/tests/std/numeric/mul.test.ts Uses public typegpu/data and typegpu/std.
packages/typegpu/tests/std/numeric/modf.test.ts Uses public typegpu/data and typegpu/std.
packages/typegpu/tests/std/numeric/mod.test.ts Uses public typegpu/data and typegpu/std.
packages/typegpu/tests/std/numeric/mix.test.ts Uses public typegpu/data and typegpu/std.
packages/typegpu/tests/std/numeric/min.test.ts Uses public typegpu.
packages/typegpu/tests/std/numeric/max.test.ts Uses public typegpu.
packages/typegpu/tests/std/numeric/log2.test.ts Uses public typegpu/data and typegpu/std.
packages/typegpu/tests/std/numeric/log.test.ts Uses public typegpu/data and typegpu/std.
packages/typegpu/tests/std/numeric/length.test.ts Uses public typegpu/data and typegpu/std.
packages/typegpu/tests/std/numeric/frexp.test.ts Uses public typegpu/data and typegpu/std.
packages/typegpu/tests/std/numeric/fract.test.ts Uses public typegpu/std.
packages/typegpu/tests/std/numeric/exp2.test.ts Uses public typegpu/data and typegpu/std.
packages/typegpu/tests/std/numeric/dot.test.ts Uses public typegpu/data and typegpu/std.
packages/typegpu/tests/std/numeric/div.test.ts Uses public typegpu and typegpu/std.
packages/typegpu/tests/std/numeric/distance.test.ts Uses public typegpu/data and typegpu/std.
packages/typegpu/tests/std/numeric/cross.test.ts Uses public typegpu/data and typegpu/std.
packages/typegpu/tests/std/numeric/cosh.test.ts Uses public typegpu/data and typegpu/std.
packages/typegpu/tests/std/numeric/bitShift.test.ts Uses public entrypoints and adjusts test scaffolding.
packages/typegpu/tests/std/numeric/atan2.test.ts Uses public typegpu/data and typegpu/std.
packages/typegpu/tests/std/numeric/asin.test.ts Uses public typegpu/data and typegpu/std.
packages/typegpu/tests/std/numeric/add.test.ts Uses public typegpu/data and typegpu/std; updates type inference assertions.
packages/typegpu/tests/std/numeric/acosh.test.ts Uses public typegpu/data and typegpu/std.
packages/typegpu/tests/std/numeric/acos.test.ts Uses public typegpu/data and typegpu/std.
packages/typegpu/tests/std/matrix/translate.test.ts Uses public typegpu/data and typegpu/std.
packages/typegpu/tests/std/matrix/scale.test.ts Uses public typegpu/data and typegpu/std.
packages/typegpu/tests/std/matrix/rotate.test.ts Uses public typegpu/std matrix exports.
packages/typegpu/tests/std/copy.test.ts Uses public typegpu.
packages/typegpu/tests/std/boolean/select.test.ts Uses public typegpu/std + typegpu/data.
packages/typegpu/tests/std/boolean/or.test.ts Uses public typegpu/std + typegpu/data.
packages/typegpu/tests/std/boolean/not.test.ts Uses public typegpu/std + typegpu.
packages/typegpu/tests/std/boolean/ne.test.ts Uses public typegpu/std + typegpu/data.
packages/typegpu/tests/std/boolean/lt.test.ts Uses public typegpu/std + typegpu/data.
packages/typegpu/tests/std/boolean/le.test.ts Uses public typegpu/std + typegpu/data.
packages/typegpu/tests/std/boolean/isCloseTo.test.ts Uses public typegpu/std + typegpu/data.
packages/typegpu/tests/std/boolean/gt.test.ts Uses public typegpu/std + typegpu/data.
packages/typegpu/tests/std/boolean/ge.test.ts Uses public typegpu/std + typegpu/data.
packages/typegpu/tests/std/boolean/eq.test.ts Uses public typegpu/std + typegpu/data.
packages/typegpu/tests/std/boolean/any.test.ts Uses public typegpu/std + typegpu/data.
packages/typegpu/tests/std/boolean/and.test.ts Uses public typegpu/std + typegpu/data.
packages/typegpu/tests/std/boolean/allEq.test.ts Uses public typegpu/std + typegpu/data.
packages/typegpu/tests/std/boolean/all.test.ts Uses public typegpu/std + typegpu/data.
packages/typegpu/tests/std/bitcast.test.ts Uses public typegpu/data + typegpu.
packages/typegpu/tests/slot.test.ts Migrates naming assertions to toString()/tgpu.resolve.
packages/typegpu/tests/size.test.ts Uses tgpu.resolve instead of internal resolution context.
packages/typegpu/tests/simulate.test.ts Updates import to typegpu.
packages/typegpu/tests/root.test.ts Updates imports to typegpu/typegpu/data.
packages/typegpu/tests/renderPipeline.test.ts Removes internal-only assertions; keeps public-facing behavior tests.
packages/typegpu/tests/ref.test.ts Updates import to typegpu.
packages/typegpu/tests/rawFn.test.ts Migrates naming assertion to resolved WGSL output.
packages/typegpu/tests/querySet.test.ts Switches naming assertion to underlying WebGPU label; moves internals to internal tests.
packages/typegpu/tests/primitiveCast.test.ts Updates import to typegpu/data.
packages/typegpu/tests/pipeline-resolution.test.ts Updates import to typegpu.
packages/typegpu/tests/offsetUtils.test.ts Uses public entrypoints for size/layout helpers.
packages/typegpu/tests/numeric.test.ts Updates import to typegpu.
packages/typegpu/tests/namespace.test.ts Updates import to typegpu.
packages/typegpu/tests/mutabilityTracking.test.ts Updates import to typegpu.
packages/typegpu/tests/matrix.test.ts Migrates IO to ArrayBuffer helpers and public std imports.
packages/typegpu/tests/location.test.ts Uses tgpu.resolve instead of internal resolution context.
packages/typegpu/tests/lazy.test.ts Updates imports to public entrypoints.
packages/typegpu/tests/jsMath.test.ts Updates import to typegpu.
packages/typegpu/tests/isContiguous.test.ts Updates import to typegpu/data.
packages/typegpu/tests/invariant.test.ts Updates import to typegpu.
packages/typegpu/tests/interpolate.test.ts Uses tgpu.resolve instead of internal resolution context.
packages/typegpu/tests/internal/vertexAttribute.test.ts New internal type-level tests for ArrayToContainedAttribs.
packages/typegpu/tests/internal/utilityTypes.test.ts Fixes internal import path after test split.
packages/typegpu/tests/internal/textureFormats.test.ts Fixes internal import paths after test split.
packages/typegpu/tests/internal/schemaCallWrapper.test.ts New internal tests for schema call wrapper behavior.
packages/typegpu/tests/internal/resolve.test.ts Adjusts internal imports for resolve/name meta tests.
packages/typegpu/tests/internal/renderPipeline.test.ts New internal tests for render pipeline internals and matchUpVaryingLocations.
packages/typegpu/tests/internal/querySet.test.ts New internal tests covering query set internal buffer lifecycle.
packages/typegpu/tests/internal/partialIo.test.ts Uses public typegpu/data for schemas; keeps internal impl import for patch logic.
packages/typegpu/tests/internal/partialIo.noEval.test.ts Updates mock pathing + public data imports.
packages/typegpu/tests/internal/mathUtils.test.ts Fixes internal import path.
packages/typegpu/tests/internal/limitsOverflow.test.ts Uses public typegpu and internal warnIfOverflow.
packages/typegpu/tests/internal/ioSchema.test.ts Uses public typegpu/data schemas with internal IO schema helpers.
packages/typegpu/tests/internal/indentController.test.ts Fixes internal import path.
packages/typegpu/tests/internal/gpuValueOf.test.ts Uses public typegpu/typegpu/data with internal type import.
packages/typegpu/tests/internal/function.test.ts New internal tests for InferIO and InheritArgNames.
packages/typegpu/tests/internal/extractArgs.test.ts Fixes internal import path.
packages/typegpu/tests/internal/externals.test.ts Uses public typegpu/data schemas with internal externals helpers.
packages/typegpu/tests/internal/connectAttributesToShader.test.ts New internal tests for connectAttributesToShader.
packages/typegpu/tests/internal/computePipeline.test.ts New internal tests for compute pipeline internals (timestamp writes/perf callbacks).
packages/typegpu/tests/internal/compiledIO.test.ts Uses public data/sizeOf while testing internal compiled IO helpers.
packages/typegpu/tests/internal/builtin.test.ts New internal test for OmitBuiltins type behavior.
packages/typegpu/tests/internal/buffer.test.ts New internal tests for type-level buffer/uniform schema validation and patch typing.
packages/typegpu/tests/internal/bindGroupLayout.test.ts New internal tests for UnwrapRuntimeConstructor type.
packages/typegpu/tests/internal/autoname.test.ts New internal test that still asserts internal getName behavior for query sets.
packages/typegpu/tests/infixOperators.test.ts Uses public typegpu/std boolean helpers.
packages/typegpu/tests/indent.test.ts Updates import to typegpu.
packages/typegpu/tests/guardedComputePipeline.test.ts Uses public tgpu.bindGroupLayout and asserts naming via underlying label.
packages/typegpu/tests/getLongestContiguousPrefix.test.ts Updates import to typegpu/data.
packages/typegpu/tests/functionTagged.test.ts Updates imports to public entrypoints.
packages/typegpu/tests/function.test.ts Uses public entrypoints; moves internal type-level tests out.
packages/typegpu/tests/entryFnHeaderGen.test.ts Updates imports to public entrypoints.
packages/typegpu/tests/entryFnBuiltinArgs.test.ts Updates imports to public entrypoints.
packages/typegpu/tests/disarray.test.ts Migrates IO to ArrayBuffer helpers and public data entrypoint.
packages/typegpu/tests/declare.test.ts Updates import to typegpu.
packages/typegpu/tests/data/ptr.test.ts Updates import to typegpu.
packages/typegpu/tests/data/deepEqual.test.ts Uses public exports for ptr helpers.
packages/typegpu/tests/data/atomic.test.ts Updates import to typegpu/data.
packages/typegpu/tests/constant.test.ts Updates import to typegpu.
packages/typegpu/tests/computePipeline.test.ts Keeps public behavior tests; moves internal/perf callback coverage out.
packages/typegpu/tests/builtin.test.ts Keeps public builtin behavior test using tgpu.resolve.
packages/typegpu/tests/bufferUsage.test.ts Uses public Infer from typegpu/data.
packages/typegpu/tests/bufferShorthands.test.ts Uses public entrypoints.
packages/typegpu/tests/buffer.test.ts Uses public entrypoints; removes internal-only type-level tests moved to internal suite.
packages/typegpu/tests/bindGroupLayout.test.ts Uses public entrypoints; adjusts expectations to match updated mocks/error formatting.
packages/typegpu/tests/attributes.test.ts Updates import to typegpu.
packages/typegpu/tests/arrayBufferIO.test.ts Simplifies test to public ArrayBuffer IO APIs.
packages/typegpu/tests/array.test.ts Migrates IO to ArrayBuffer helpers and uses tgpu.resolve for runtime-sized array codegen check.
packages/typegpu/tests/align.test.ts Updates import to typegpu.
packages/typegpu/tests/accessor.test.ts Updates import to typegpu.
packages/typegpu/src/data/compiledIO.ts Adds early throw when compiling a writer for runtime-sized array/disarray schemas.
packages/typegpu/src/core/texture/texture.ts Adds toString() to the TgpuTextureView interface (aligning with tests using stringification).
packages/typegpu/src/core/slot/slotTypes.ts Adds toString() to TgpuAccessor interface.
packages/typegpu/src/core/sampler/sampler.ts Adds toString() to sampler interfaces.
packages/typegpu-testing-utility/src/extendedIt.ts Updates texture view mock + compute pipeline mock behavior for the new/updated tests.
apps/typegpu-docs/tests/individual-example-tests/utils/commonMocks.ts Provides non-empty mock model attribute buffers for docs example tests.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread packages/typegpu-testing-utility/src/extendedIt.ts Outdated
Comment thread packages/typegpu/tests/std/numeric/add.test.ts Outdated
Comment thread packages/typegpu/tests/internal/renderPipeline.test.ts Outdated

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ No new issues found.

Reviewed changes — 160 files, splitting the test suite into public (import from 'typegpu' built package) and internal (import from source '../../src/...') layers. Internal tests that access $internal, private types, or unexported utilities were moved to packages/typegpu/tests/internal/.

  • Imports flipped to 'typegpu' — all public tests now import from the built package ('typegpu', 'typegpu/data', 'typegpu/std', 'typegpu/common') instead of relative source paths, consuming only the public API.
  • Internal tests extracted — suites relying on $internal, UnwrapRuntimeConstructor, IsValidBufferSchema, InferPatch, matchUpVaryingLocations, OmitBuiltins, and performance-callback/timestamp internals moved into new internal/ files with source imports.
  • Mock layer updatedcreateTextureMock.createView returns { label } instead of 'view'; createComputePipeline mock inlined.
  • API surface tightenedreadData/writeData replaced with readFromArrayBuffer/writeToArrayBuffer; TypedArrayArrayBufferView; ExperimentalTgpuRootTgpuRoot.
  • toString() added to TgpuSampler, TgpuComparisonSampler, TgpuAccessor, TgpuTextureView.
  • Early error in compiledIO.ts for runtime-sized array writers.

All deleted test suites were verified as present in their new internal locations — no coverage gaps.

Pullfrog  | View workflow run | Using DeepSeek Pro (free via Pullfrog for OSS) | 𝕏

@iwoplaza iwoplaza force-pushed the test/test-built-package branch 3 times, most recently from 7db90a4 to 7f4fed2 Compare June 23, 2026 16:38

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ No new issues found.

Reviewed changes — force-pushed branch with two commits: an early-error guard in compiledIO.ts for runtime-sized array writers, and the full test suite restructure splitting tests into public ('typegpu' imports) and internal ('../../src/...' imports) layers.

  • toString() interface additions — added to TgpuSampler, TgpuComparisonSampler, TgpuAccessor, TgpuTextureView; all already implemented by concrete classes, so this is purely type-level documentation.
  • Mock fidelity improvementscreateTextureMock: renamed with to width (the former was a typo), createView returns { label } instead of 'view'. createQuerySet rewritten from Object.create prototype sharing to independent GPUQuerySet factory objects. Label defaults aligned with WebGPU spec ('' instead of '<unnamed>').
  • compiledIO.ts early errorbuildWriter throws 'Cannot write using a runtime-sized schema.' when elementCount === 0, matching the guard already present in the non-compiled dataIO.ts path.
  • Import path modernization — all public tests now import from package entry points ('typegpu', 'typegpu/data', 'typegpu/std', 'typegpu/common'); internal tests import source paths via '../../src/...'.
  • Assertion strategygetName() (internal) replaced across public tests with tgpu.resolve(), root.unwrap().label, toString(), or error-based assertions, removing all internal API consumption from the public test suite.
  • Test relocation — internal-type tests moved to tests/internal/*.ts (performance callbacks, timestamp writes, matchUpVaryingLocations, connectAttributesToShader, UnwrapRuntimeConstructor, IsValidBufferSchema/IsValidUniformSchema, InferPatch, InferIO). All moved tests have equivalent assertions with no coverage loss.
  • Autoname test rewriteunplugin/autoname.test.ts no longer imports getName; naming verified through WGSL resolution, WebGPU labels, toString(), and error messages.
  • Docs mock fixcommonMocks.ts provides non-empty geometry data so model-loading tests don't pass vacuously.

Pullfrog  | View workflow run | Using DeepSeek Pro (free via Pullfrog for OSS) | 𝕏

@iwoplaza iwoplaza force-pushed the test/test-built-package branch from 7f4fed2 to fe70f18 Compare June 23, 2026 16:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants