gemini-code-assist[bot] commented on PR #18711:
URL: https://github.com/apache/tvm/pull/18711#issuecomment-3847483753

   ## Summary of Changes
   
   Hello @tqchen, I'm Gemini Code Assist[^1]! I'm currently reviewing this pull 
request and will post my feedback shortly. In the meantime, here's a summary to 
help you and other reviewers quickly get up to speed!
   
   This pull request significantly updates the testing framework by eliminating 
a problematic base class and migrating its usages to a more direct and 
compatible approach. The change improves the robustness of the test suite 
against external library updates and simplifies the overall structure of 
individual tests, making them easier to understand and maintain.
   
   ### Highlights
   
   * **Refactor Test Infrastructure**: The `CompareBeforeAfter` base class from 
`tvm.testing` has been removed, streamlining the test setup for TIR 
transformations.
   * **Pytest Compatibility**: This refactoring addresses an incompatibility 
with recent `pytest` versions that no longer allow calling fixtures as inner 
patterns, which the old `CompareBeforeAfter` class relied upon.
   * **Simplified Test Patterns**: All dependent tests have been converted from 
class-based structures to simpler, more explicit function-based patterns, 
directly embedding transformation logic and structural assertions.
   
   🧠 **New Feature in Public Preview:** You can now enable **Memory** to help 
**Gemini Code Assist** learn from your team's feedback. This makes future code 
reviews more consistent and personalized to your project's style. **Click 
[here](https://codeassist.google/code-review/login) to enable Memory in your 
admin console.**
   
   <details>
   <summary><b>Changelog</b></summary>
   
   * **python/tvm/testing/utils.py**
       * Removed the `CompareBeforeAfter` class entirely, as it was no longer 
compatible with recent `pytest` versions.
   * **tests/python/dlight/test_cpu_gemv.py**
       * Converted class-based tests (`BaseBeforeAfter`, `TestGEMV`) to a 
standalone function (`test_gemv_basic`).
       * Moved transformation logic and structural assertions directly into the 
test function.
       * Updated `T.prim_func` decorators to include `private=True`.
   * **tests/python/dlight/test_gpu_conv.py**
       * Converted class-based tests (`BaseBeforeAfter`, `TestConv3d`) to a 
standalone function (`test_conv3d`).
       * Moved transformation logic and structural assertions directly into the 
test function.
       * Removed `pytest` import as it's no longer directly used.
       * Updated `T.prim_func` decorators to include `private=True`.
   * **tests/python/dlight/test_gpu_gemv.py**
       * Converted class-based tests (`BaseBeforeAfter`, `TestGEMV`) to a 
standalone function (`test_gemv_basic`).
       * Moved transformation logic and structural assertions directly into the 
test function.
       * Removed `pytest` import as it's no longer directly used.
       * Updated `T.prim_func` decorators to include `private=True`.
   * **tests/python/dlight/test_gpu_matmul.py**
       * Converted multiple class-based tests (`TestMatmul`, `TestFusedMatmul`, 
`TestSkipGEMV`, `TestOutputFP32`, `TestInlineConsumerChain`, 
`AndroidBeforeAfter`, `TestMatmulAndroid`, `MetalBeforeAfter`, 
`TestMatmulMetal`, `TestMatmulMetalInt4Quant`) to standalone functions.
       * Moved transformation logic and structural assertions directly into the 
test functions.
       * Removed `pytest` import as it's no longer directly used.
       * Updated `T.prim_func` decorators to include `private=True` and removed 
`global_symbol` attributes where appropriate.
   * **tests/python/dlight/test_gpu_matmul_tensorize.py**
       * Converted multiple class-based tests (`TestMatmulTensorize`, 
`TestMatmulTensorizeTooSmall`, `TestMatmulTensorizeEpilogue`, 
`TestMatmulInt8Tensorize`, `TestMatmulInt8Tensorize3d2dDyn`, 
`MetalBeforeAfter`, `TestMatmulMetal`) to standalone functions.
       * Moved transformation logic and structural assertions directly into the 
test functions.
       * Removed `pytest` import as it's no longer directly used.
       * Updated `T.prim_func` decorators to include `private=True` and removed 
`global_symbol` attributes where appropriate.
   * 
**tests/python/meta_schedule/test_meta_schedule_postproc_rewrite_layout.py**
       * Converted class-based tests (`BaseBeforeAfter`, `TestTIRMatmul`, 
`TestRewrittenBuffersMustOccurWithinBlock`, `TestExtentOne`, 
`TestLayoutRewriteInt64Index`) to standalone functions.
       * Introduced a helper function `_apply_rewrite_layout` to encapsulate 
the transformation logic.
       * Added `pytest` import.
       * Updated `T.prim_func` decorators to include `private=True` and removed 
`global_symbol` attributes where appropriate.
   * **tests/python/relax/test_transform_compute_prim_value.py**
       * Converted class-based tests (`BaseCompare`, 
`TestPrimValueInAssertCondition`, `TestPrimValueInBranchCondition`, 
`TestPrimValueInPureFunction`) to standalone functions.
       * Moved transform application and structural assertions inline within 
the test functions.
   * **tests/python/relax/test_transform_convert_dataflow.py**
       * Converted class-based tests (`ExtractCompare`, `TestTrivial`, 
`TestBasic`, `TestMultipleBlocks`, `TestExtractInsideBranches`, 
`TestTreatNonCallAsPure`, `TestImpureInnerFunction`, `TestPureInnerFunction`, 
`TestImpureExternalFunction`, `TestPureExternalFunction`, 
`TestMergeWithPrecedingDataflowBlock`, `TestMergeWithNextDataflowBlock`, 
`TestPreserveExistingDataflowBlocksAtBeginning`, 
`TestPreserveExistingDataflowBlocksAtEnd`) to standalone functions.
       * Moved transform application and structural assertions inline within 
the test functions.
   * **tests/python/relax/test_transform_expand_tuple_args.py**
       * Converted class-based tests (`BaseCompare`, `TestSimple`, 
`TestNested`) to standalone functions.
       * Moved transform application and structural assertions inline within 
the test functions.
   * **tests/python/relax/test_transform_remove_unused_outputs.py**
       * Converted class-based tests (`BaseCompare`, `TestSimple`, 
`TestUseMultipleOutputs`, `TestMultipleCallSites`, `TestReturnTuple`) to 
standalone functions.
       * Moved transform application and structural assertions inline within 
the test functions.
   * **tests/python/relax/test_transform_remove_unused_parameters.py**
       * Converted class-based tests (`BaseCompare`, 
`TestRemoveUnusedRelaxParameter`, `TestReplaceSymbolicVariables`, 
`TestNoExtraSymbolicVariables`, `TestRemoveExtraPrimVariables`, 
`TestRemoveExtraShapeVariables`) to standalone functions.
       * Moved transform application and structural assertions inline within 
the test functions.
   * **tests/python/relax/test_transform_rewrite_cuda_graph.py**
       * Converted class-based tests (`BaseCompare`, `TestNullValue`, 
`TestMergeAllocFuncs`, `TestDisableCaptureOutput`, 
`TestStaticInputWithSymbolicShape`) to standalone functions.
       * Moved transform application and structural assertions inline within 
the test functions.
   * **tests/python/relax/test_transform_topological_sort.py**
       * Converted multiple class-based tests (`TestDepthFirstFromInputs`, 
`TestDepthFirstFromInputWithConstant`, 
`TestDepthFirstFromInputWithMultipleInputs`, 
`TestDepthFirstBreakTiesByExistingOrder`, `TestDepthFirstFromOutput`, 
`TestDepthFirstFromOutputTupleWithBinding`, 
`TestDepthFirstFromOutputTupleWithoutBinding`, 
`TestDepthFirstFromOutputWithUnusedVariables`, 
`TestDepthFirstFromInputWithUnusedParameters`, `TestBreadthFirst`, 
`TestBreadthFirstBreakTiesByExistingOrder`) to standalone functions.
       * Moved transform application and structural assertions inline within 
the test functions.
   * **tests/python/testing/test_tvm_testing_before_after.py**
       * Removed the `BaseBeforeAfter` class.
       * Converted all test classes (`TestBeforeAfterPrimFunc`, 
`TestBeforeAfterMethod`, `TestBeforeAfterFixture`, 
`TestBeforeAfterDelayedPrimFunc`, `TestBeforeAfterParametrizedFixture`, 
`TestBeforeAfterIRModule`, `TestBeforeAfterIRModuleExplicitFixture`) to 
standalone functions.
       * Updated `T.prim_func` decorators to include `private=True`.
   * **tests/python/tir-analysis/test_tir_analysis_identify_memcpy.py**
       * Removed the `BaseTest` class.
       * Converted all test classes to standalone functions.
       * Introduced a helper function `_check_memcpy_results` for result 
validation.
   * **tests/python/tir-base/test_slice_tir.py**
       * Converted class-based tests (`TestParseCallTIR`, 
`TestAnnotateAndSliceTIR`) to standalone functions.
       * Updated `T.prim_func` decorators to include `private=True`.
   * **tests/python/tir-base/test_tir_stmt_functor_substitute.py**
       * Converted class-based tests (`BaseCompare`, `TestBasicSubstitute`, 
`TestSubstituteAllocate`, `TestSubstituteBufferLoad`, 
`TestSubstituteDeclBuffer`) to standalone functions.
       * Introduced a helper function `_apply_substitute` for applying the 
transform.
   * **tests/python/tir-schedule/test_tir_schedule_reduction.py**
       * Converted the `TestDecomposeReductionWithThreadBinding` class to a 
standalone function.
   * **tests/python/tir-schedule/test_tir_schedule_set_axis_separator.py**
       * Converted the `TestIndexedLookup` class to a standalone function.
   * **tests/python/tir-schedule/test_tir_schedule_transform_layout.py**
       * Converted multiple class-based tests 
(`TestTransformLayoutWithCacheWriteAndAxisSeparators`, `BasePaddingCompare`, 
`TestNoPadding`, `TestNoPaddingMultipleUsage`, `TestNoPaddingOpaqueBlock`, 
`TestErrorIfPaddingForbidden`, `TestImplicitPaddingAssumeInjective`, 
`TestErrorOnWrongPaddingType`, `TestErrorOnNonMatchingTypes`, 
`TestPaddedTransformIfThenElse`, `TestPaddedTransformWithoutLoop`, 
`TestPaddedTransformIfThenElseReduction`, 
`TestPaddedTransformIfThenElseReductionOpaque`, 
`TestPaddedTransformPostProcIfRequiredDueToSideEffects`, 
`TestPaddedTransformOfInputCreatesAssumption`, 
`TestPaddedTransformNonConstantValue`, 
`TestPaddedTransformRepeatedBufferElement`, 
`TestPadValueMayNotReferenceOtherBuffer`, `TestTransformLayoutWithVar`, 
`TestTransformWithAxisSeparators`, 
`TestTransformWithAxisSeparatorsOpaqueBlock`) to standalone functions.
   * 
**tests/python/tir-transform/test_tir_transform_annotate_device_regions.py**
       * Converted class-based tests (`BaseCompare`, 
`TestAnnotateThreadExtent`, `TestAnnotateDeviceScope`) to standalone functions.
   * 
**tests/python/tir-transform/test_tir_transform_annotate_irregular_loop.py**
       * Converted class-based tests (`BaseCompare`, 
`TestAnnotateLoopWithBreak`, `TestAnnotateLoopWithContinue`, 
`TestNestedIrregularBothLoops`, `TestWhileLoopWithBreak`, 
`TestBreakInNestedConditional`, `TestWhileLoopWithBreakStandalone`, 
`TestNestedIrregularLoopStandalone`) to standalone functions.
   * **tests/python/tir-transform/test_tir_transform_combine_context_call.py**
       * Converted class-based tests (`TestCombineContextsInLoop`, 
`TestCombineContextsInLoopWithoutTarget`) to standalone functions.
   * 
**tests/python/tir-transform/test_tir_transform_convert_blocks_to_opaque.py**
       * Converted the `TestErrorIfPredicateUsesBlockVariables` class to a 
standalone function.
   * **tests/python/tir-transform/test_tir_transform_convert_ssa.py**
       * Converted multiple class-based tests (`BaseBeforeAfter`, 
`TestReuseInSequentialLetStmt`, `TestReuseInNestedLetStmt`, 
`TestReusedVarAcrossModule`, `TestReusedParameter`, `TestReusedBufferObj`, 
`TestReusedBufferParameter`, `TestKeepDuplicateThreadIdxInSameFunction`, 
`TestDeDuplicateThreadIdxAcrossMultipleFunctions`, 
`TestDeDuplicateThreadIdxIterVarAcrossMultipleFunctions`, 
`TestThreadIdxReusedWithinAndAcrossFunctions`, 
`TestTrackForwardDeclarationsInAttrStmt`) to standalone functions.
   * **tests/python/tir-transform/test_tir_transform_device_kernel_launch.py**
       * Converted class-based tests (`BaseCompare`, 
`TestLowerDeviceKernelLaunch`, `TestExternallyVisibleKernelLaunch`, 
`TestCollectLaunchParameter`, `TestSameDeviceDifferentTarget`) to standalone 
functions.
   * **tests/python/tir-transform/test_tir_transform_flatten_buffer.py**
       * Converted multiple class-based tests (`BaseCompare`, 
`TestElementwise`, `TestElementwiseWithoutDeclBuffer`, `TestGPU`, 
`TestSymbolic`, `TestFusedSymbolic`, `TestFusedSymbolicWithPredicate`, 
`TestMultiAlloc`, `TestStrided`, `TestBoolean`, `TestFlattenInsideBlock`, 
`TestNoChangeTo2DPhysicalBuffer`, `TestFlattenAllocBufferWithAxisSeparators`, 
`TestFlattenDeclBufferWithAxisSeparators`) to standalone functions.
   * **tests/python/tir-transform/test_tir_transform_helpers.py**
       * Converted multiple class-based tests (`TestBindTarget`, 
`TestBindTargetWithHostToExposedFunction`, 
`TestBindTargetWithHostToInternalFunction`, `TestBindTargetIgnoresExisting`, 
`TestBindTargetUpdatesHost`, `TestBindTargetMultipleFunctions`, 
`TestBindTargetWithDeviceHostCallSameFunc`, `TestFilterRemovesGlobalVarMap`) to 
standalone functions.
   * **tests/python/tir-transform/test_tir_transform_hoist_expression.py**
       * Converted multiple class-based tests (`BaseBeforeAfter`, 
`TestHoistToTop`, `TestSuppressHoistIfElse`, `TestHoistBlockVar`, 
`TestSuppressHoistBlockVar`, `TestHoistAcrossBlockVar`, 
`TestSuppressHoistAcrossBlockVar`, `TestHoistToMiddle`, `TestHoistWithLet`, 
`TestHoistDisableLet`, `TestHoistIfElse`, `TestHoistSequentialAssign`, 
`TestHoistMultiIf`, `TestHoistComplexConditional`, 
`TestSuppressSplittingConditional`, `TestHoistMultiIfElse`, 
`TestHoistMultiIfElseDifferentBranches`, `TestHoistIfElseExpr`, 
`TestSuppressHoistIfElseExpr`, `TestHoistLetExpr`, `TestSuppressHoistLetExpr`) 
to standalone functions.
   * **tests/python/tir-transform/test_tir_transform_inject_double_buffer.py**
       * Converted class-based tests (`TestDoubleBuffer`, 
`TestDoubleBufferWithDeclBuffer`) to standalone functions.
   * **tests/python/tir-transform/test_tir_transform_inject_ptx_async_copy.py**
       * Converted the `TestMultiplicationNodesAreInligned` class to a 
standalone function.
   * 
**tests/python/tir-transform/test_tir_transform_lower_device_storage_access_info.py**
       * Converted class-based tests (`BaseCompare`, 
`TestLowerCPUAccessibleScope`, `TestLowerCPUAccessibleScopeWithDeclBuffer`, 
`TestLowerCPUInaccessibleScope`, `TestLowerCPUInaccessibleScopeWithDeclBuffer`) 
to standalone functions.
   * 
**tests/python/tir-transform/test_tir_transform_lower_thread_all_reduce.py**
       * Converted multiple class-based tests (`BaseCompare`, `BaseFailure`, 
`TestBasic`, `TestBasicWithDeclBuffer`, `TestReduceSummation`, 
`TestMultiGroupReduction`, `TestMultiGroupMask1`, `TestMultiWarpReduce1`, 
`TestMultiWarpReduce2`, `TestMultiGroupMultiWarpReduction`, 
`TestMultiGroupMultiWarpPredicatedReduction`, `TestMetalNoMask`) to standalone 
functions.
   * **tests/python/tir-transform/test_tir_transform_lower_tvm_builtin.py**
       * Converted class-based tests (`TestLowerDeviceAllocate`, 
`TestLowerCPUAllocation`, `TestLowerAllocateRequiresDeviceID`, 
`TestLowerAllocateRequiresDeviceType`, `TestLowerCPUAllocWithFunctionAttr`) to 
standalone functions.
   * **tests/python/tir-transform/test_tir_transform_make_unpacked_api.py**
       * Converted class-based tests (`TestTargetHostRemoved`, 
`TestInternalSubroutineCall`, 
`TestSubroutineCallToExternallyVisibleSubroutine`, 
`TestCallExternallyVisibleSubroutineWithDLTensor`) to standalone functions.
   * 
**tests/python/tir-transform/test_tir_transform_merge_dynamic_shared_memory_allocations.py**
       * Converted multiple class-based tests (`TestMatmul`, 
`TestSimpleAllocNoReuse`, `TestSimpleAllocReuse`, `TestAsyncCopy`) to 
standalone functions.
   * 
**tests/python/tir-transform/test_tir_transform_pointer_value_type_rewrite.py**
       * Converted class-based tests (`BaseCompare`, `TestRewriteToShuffle0`, 
`TestRewriteToShuffle1`, `TestAddressOf`, `TestScalarReadWithoutWrite`) to 
standalone functions.
   * 
**tests/python/tir-transform/test_tir_transform_reduce_branching_through_overcompute.py**
       * Converted multiple class-based tests (`BaseBeforeAfter`, 
`TestIntroduceNoOp`, `TestIntroduceAdditionOfZero`, 
`TestIntroduceAdditionOfKnownZeroInBuffer`, `TestIntroduceOverwrittenWrite`, 
`TestMaintainValuesUsedLater`, 
`TestIdentifyOverwrittenWriteFromEquivalentExpressions`, 
`TestIntroduceSupersetOverwrittenWrite`) to standalone functions.
   * **tests/python/tir-transform/test_tir_transform_remove_assume.py**
       * Converted class-based tests (`BaseBeforeAfter`, `TestRemoveAssume`, 
`TestRemoveAssumeLoop`) to standalone functions.
   * **tests/python/tir-transform/test_tir_transform_remove_no_op.py**
       * Converted multiple class-based tests (`BaseBeforeAfter`, 
`TestRemoveEmptyForLoop`, `TestRemoveZeroExtentLoop`, `TestRemoveUnusedLet`, 
`TestRemoveLetUsedOnlyInNoOp`, `TestKeepSideEffectsOfLet`, 
`TestRemoveEmptyThenCase`, `TestRemoveEmptyElseCase`, `TestRemoveUnusedWrite`, 
`TestSuppressRemovalOfUnusedWrite`, `TestKeepSideEffectsOfUnusedWrite`, 
`TestKeepFirstWriteWhenUsed`, `TestRemoveOverwrittenLoop`, 
`TestRemoveOverwrittenSubloop`, `TestKeepPartiallyOverwrittenLoop`, 
`TestRemoveOverwrittenPredicatedLoopWithIdenticalCondition`, 
`TestRemoveOverwrittenPredicatedLoopWithProvableCondition`, 
`TestRemoveSeparatedOverwrites`, 
`TestRemoveSeparatedOverwriteOfPredicatedLoop`, `TestRemoveReadWrite`, 
`TestKeepReadWriteToDifferentIndices`, 
`TestRemoveReadWriteSameIndexDifferentExpression`, 
`TestRemoveReadWriteSameIndexUsingConstraint`, `TestRemoveWritingOfKnownValue`, 
`TestKeepOneOfDuplicateLoops`, `TestRemoveEmptyTemporary`, 
`TestRemoveEmptyTemporaryWithDeclBuffer`, `TestRemoveUnusedTempo
 rary`, `TestRemoveUnusedWriteIntoTemporary`, `TestKeepUsedWriteIntoTemporary`, 
`TestRemoveWriteIntoTemporary`, `TestCertainConditon`) to standalone functions.
   * **tests/python/tir-transform/test_tir_transform_remove_undef.py**
       * Converted class-based tests (`BaseBeforeAfter`, 
`TestRemoveStoreUndef`, `TestRemoveStoreUndefExpression`, 
`TestKeepOtherCallNodes`, `TestRemoveLetUndef`, 
`TestRaiseErrorForUndefAsStoreIndices`, `TestRaiseErrorForUndefAsLoadIndices`) 
to standalone functions.
   * **tests/python/tir-transform/test_tir_transform_simplify.py**
       * Converted multiple class-based tests (`BaseBeforeAfter`, 
`TestLoadStoreNoop`, `TestLoadStoreNoopAfterSimplify`, `TestNestedCondition`, 
`TestNestedProvableCondition`, `TestNestedVarCondition`, 
`TestAlteredBufferContents`, `TestNegationOfCondition`, 
`TestNegationOfNotEqual`, `TestNegationOfVarCondition`, 
`TestLiteralConstraintSplitBooleanAnd`, `TestLiteralConstraintSplitBooleanOr`, 
`TestProveConditionUsingLet`, `TestProveLetCondition`, 
`TestProveRepeatedLetCondition`, `TestIfThenElseExpr`, `TestCeilLog2Int`, 
`TestLeftCeilLog2LowerBound`, `TestLeftShiftLowerBound`, 
`TestLeftShiftUpperBound`, `TestLeftShiftOfNegativeValue`, 
`TestLeftShiftByNegativeValue`, `TestRemoveTransitivelyProvableCondition`, 
`TestSuppressTransitivelyProvableCondition`, `TestRewriteAsAndOfOrs`, 
`TestSuppressRewriteAsAndOfOrs`, `TestRewriteAsAndOfOrsWithTopLevelAnd`, 
`TestRewriteAsAndOfOrsWithSimplificationBetweenGroups`, 
`TestRewriteAsAndOfOrsWithSimplificationBetweenReorderedGroups`, 
`TestRewriteAsAndOfOrU
 singSimplificationAcrossAnd`, 
`TestRewriteAsAndOfOrUsingSimplificationWithinOr`, `TestConditionalFloorMod`, 
`TestSimplifyRHSOfBooleanAndUsingLHS`, `TestSimplifyLHSOfBooleanAndUsingRHS`, 
`TestSimplifyRHSOfBooleanOrUsingLHS`, `TestSimplifyLHSOfBooleanOrUsingRHS`, 
`TestSimplifyRHSOfBooleanAndUsingLHSWithoutConst`, 
`TestSimplifyLHSOfBooleanAndUsingRHSWithoutConst`, 
`TestSimplifyRHSOfBooleanOrUsingLHSWithoutConst`, 
`TestSimplifyLHSOfBooleanOrUsingRHSWithoutConst`, 
`TestProvableConditionWithOffset`, `TestMostRestrictiveConditional`, 
`TestAlteredBufferContents`, `TestPossiblyAlteredBufferContents`, 
`TestSimplifyInputAssumption`, `TestNoSimplifyFromScopedInputAssumption`, 
`TestSimplifyConditionalUsingBufferValue`, 
`TestKeepExpressionSimplifyUsingBufferValue`, 
`TestSimplifyConditionalInLoopUsingBufferValue`, 
`TestSimplifyUsingBufferAssumption`, `TestSimplifyUsingBufferAssumptionInLoop`, 
`TestSimplifyUsingPartiallyKnownBufferConditional`, 
`TestSimplifyUsingPartiallyKnownBufferExpression`, `Te
 stNoSimplificationIfPredicateNotMet`, 
`TestNoSimplifyUsingInvalidatedScopedConstraint`, 
`TestNoSimplifyUsingOverwrittenValue`, 
`TestNoSimplifyUsingLoopDependentBufferValue`, 
`TestSimplifyPriorToOverwrittenValue`, 
`TestSimplifyElementWiseUsingPreLoopBufferValue`, `TestSimplifyNonConditional`, 
`TestSuppressSimplifyNonConditional`, 
`TestSimplifyUsingTransitiveKnownBufferValue`, 
`TestSimplifyRampIndexBroadcastValue`, `TestSimplifyRampIndexRampValue`, 
`TestSimplifyUsingPartiallyProvenBufferValueGather`, 
`TestSimplifyUsingPartiallyProvenBufferValueScatter`) to standalone functions.`
   </details>
   
   
   
   <details>
   <summary><b>Activity</b></summary>
   
   * The pull request was created by tqchen.
   * The primary activity involves refactoring test code to remove the 
`CompareBeforeAfter` utility and update all its usages across numerous test 
files.
   * This is a significant code cleanup and modernization effort for the 
testing infrastructure.
   </details>
   
   
   <details>
   <summary><b>Using Gemini Code Assist</b></summary>
   <br>
   
   The full guide for Gemini Code Assist can be found on our [documentation 
page](https://developers.google.com/gemini-code-assist/docs/review-github-code),
 here are some quick tips.
   
   <b>Invoking Gemini</b>
   
   You can request assistance from Gemini at any point by creating a comment 
using either `/gemini <command>` or `@gemini-code-assist <command>`. Below is a 
summary of the supported commands on the current page.
   
   Feature | Command | Description
   --- | --- | ---
   Code Review | `/gemini review` | Performs a code review for the current pull 
request in its current state.
   Pull Request Summary | `/gemini summary` | Provides a summary of the current 
pull request in its current state.
   Comment | @gemini-code-assist | Responds in comments when explicitly tagged, 
both in pull request comments and review comments.
   Help | `/gemini help` | Displays a list of available commands.
   
   <b>Customization</b>
   
   To customize Gemini Code Assist for GitHub experience, repository 
maintainers can create a configuration file and/or provide a custom code review 
style guide (such as PEP-8 for Python) by creating and adding files to a 
`.gemini/` folder in the base of the repository. Detailed instructions can be 
found 
[here](https://developers.google.com/gemini-code-assist/docs/customize-gemini-behavior-github).
   
   <b>Limitations & Feedback</b>
   
   Gemini Code Assist may make mistakes. Please leave feedback on any instances 
where its feedback is incorrect or counter productive. You can react with 
:thumbsup: and :thumbsdown: on @gemini-code-assist comments. If you're 
interested in giving your feedback about your experience with Gemini Code 
Assist for Github and other Google products, sign up 
[here](https://google.qualtrics.com/jfe/form/SV_2cyuGuTWsEw84yG).
   
   <b>You can also get AI-powered code generation, chat, as well as code 
reviews directly in the IDE at no cost with the [Gemini Code Assist IDE 
Extension](https://cloud.google.com/products/gemini/code-assist).</b>
   </details>
   
   
   
   
   [^1]: Review the [Privacy Notices](https://policies.google.com/privacy), 
[Generative AI Prohibited Use 
Policy](https://policies.google.com/terms/generative-ai/use-policy), [Terms of 
Service](https://policies.google.com/terms), and learn how to configure Gemini 
Code Assist in GitHub 
[here](https://developers.google.com/gemini-code-assist/docs/customize-gemini-behavior-github).
 Gemini can make mistakes, so double check it and [use code with 
caution](https://support.google.com/legal/answer/13505487).
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to