// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.

package org.jetbrains.kotlin.idea.codeInsight.unwrap;

import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.idea.base.plugin.KotlinPluginMode;
import org.jetbrains.kotlin.idea.base.test.TestRoot;
import org.jetbrains.kotlin.idea.test.JUnit3RunnerWithInners;
import org.jetbrains.kotlin.idea.test.KotlinTestUtils;
import org.jetbrains.kotlin.test.TestMetadata;
import org.junit.runner.RunWith;

/**
 * This class is generated by {@link org.jetbrains.kotlin.testGenerator.generator.TestGenerator}.
 * DO NOT MODIFY MANUALLY.
 */
@SuppressWarnings("all")
@TestRoot("idea/tests")
@TestDataPath("$CONTENT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public abstract class UnwrapRemoveTestGenerated extends AbstractUnwrapRemoveTest {
    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/codeInsight/unwrapAndRemove/removeExpression")
    public static class RemoveExpression extends AbstractUnwrapRemoveTest {
        @java.lang.Override
        @org.jetbrains.annotations.NotNull
        public final KotlinPluginMode getPluginMode() {
            return KotlinPluginMode.K1;
        }

        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doTestExpressionRemover, this, testDataFilePath);
        }

        @TestMetadata("ifInBlock.kt")
        public void testIfInBlock() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/removeExpression/ifInBlock.kt");
        }

        @TestMetadata("ifInExpressionInReturn.kt")
        public void testIfInExpressionInReturn() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/removeExpression/ifInExpressionInReturn.kt");
        }

        @TestMetadata("ifInReturn.kt")
        public void testIfInReturn() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/removeExpression/ifInReturn.kt");
        }

        @TestMetadata("tryInBlock.kt")
        public void testTryInBlock() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/removeExpression/tryInBlock.kt");
        }

        @TestMetadata("tryInReturn.kt")
        public void testTryInReturn() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/removeExpression/tryInReturn.kt");
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/codeInsight/unwrapAndRemove/unwrapThen")
    public static class UnwrapThen extends AbstractUnwrapRemoveTest {
        @java.lang.Override
        @org.jetbrains.annotations.NotNull
        public final KotlinPluginMode getPluginMode() {
            return KotlinPluginMode.K1;
        }

        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doTestThenUnwrapper, this, testDataFilePath);
        }

        @TestMetadata("thenCompoundInBlock.kt")
        public void testThenCompoundInBlock() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapThen/thenCompoundInBlock.kt");
        }

        @TestMetadata("thenCompoundInReturn.kt")
        public void testThenCompoundInReturn() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapThen/thenCompoundInReturn.kt");
        }

        @TestMetadata("thenSimpleInReturn.kt")
        public void testThenSimpleInReturn() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapThen/thenSimpleInReturn.kt");
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/codeInsight/unwrapAndRemove/unwrapElse")
    public static class UnwrapElse extends AbstractUnwrapRemoveTest {
        @java.lang.Override
        @org.jetbrains.annotations.NotNull
        public final KotlinPluginMode getPluginMode() {
            return KotlinPluginMode.K1;
        }

        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doTestElseUnwrapper, this, testDataFilePath);
        }

        @TestMetadata("elseCompoundInBlock.kt")
        public void testElseCompoundInBlock() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapElse/elseCompoundInBlock.kt");
        }

        @TestMetadata("elseCompoundInReturn.kt")
        public void testElseCompoundInReturn() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapElse/elseCompoundInReturn.kt");
        }

        @TestMetadata("elseSimpleInReturn.kt")
        public void testElseSimpleInReturn() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapElse/elseSimpleInReturn.kt");
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/codeInsight/unwrapAndRemove/removeElse")
    public static class RemoveElse extends AbstractUnwrapRemoveTest {
        @java.lang.Override
        @org.jetbrains.annotations.NotNull
        public final KotlinPluginMode getPluginMode() {
            return KotlinPluginMode.K1;
        }

        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doTestElseRemover, this, testDataFilePath);
        }

        @TestMetadata("else.kt")
        public void testElse() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/removeElse/else.kt");
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/codeInsight/unwrapAndRemove/unwrapLoop")
    public static class UnwrapLoop extends AbstractUnwrapRemoveTest {
        @java.lang.Override
        @org.jetbrains.annotations.NotNull
        public final KotlinPluginMode getPluginMode() {
            return KotlinPluginMode.K1;
        }

        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doTestLoopUnwrapper, this, testDataFilePath);
        }

        @TestMetadata("doWhile.kt")
        public void testDoWhile() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapLoop/doWhile.kt");
        }

        @TestMetadata("for.kt")
        public void testFor() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapLoop/for.kt");
        }

        @TestMetadata("while.kt")
        public void testWhile() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapLoop/while.kt");
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/codeInsight/unwrapAndRemove/unwrapTry")
    public static class UnwrapTry extends AbstractUnwrapRemoveTest {
        @java.lang.Override
        @org.jetbrains.annotations.NotNull
        public final KotlinPluginMode getPluginMode() {
            return KotlinPluginMode.K1;
        }

        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doTestTryUnwrapper, this, testDataFilePath);
        }

        @TestMetadata("tryCompoundInBlock.kt")
        public void testTryCompoundInBlock() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapTry/tryCompoundInBlock.kt");
        }

        @TestMetadata("tryCompoundInReturn.kt")
        public void testTryCompoundInReturn() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapTry/tryCompoundInReturn.kt");
        }

        @TestMetadata("trySimpleInReturn.kt")
        public void testTrySimpleInReturn() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapTry/trySimpleInReturn.kt");
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/codeInsight/unwrapAndRemove/unwrapCatch")
    public static class UnwrapCatch extends AbstractUnwrapRemoveTest {
        @java.lang.Override
        @org.jetbrains.annotations.NotNull
        public final KotlinPluginMode getPluginMode() {
            return KotlinPluginMode.K1;
        }

        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doTestCatchUnwrapper, this, testDataFilePath);
        }

        @TestMetadata("catchCompoundInBlock.kt")
        public void testCatchCompoundInBlock() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapCatch/catchCompoundInBlock.kt");
        }

        @TestMetadata("catchCompoundInReturn.kt")
        public void testCatchCompoundInReturn() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapCatch/catchCompoundInReturn.kt");
        }

        @TestMetadata("catchSimpleInReturn.kt")
        public void testCatchSimpleInReturn() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapCatch/catchSimpleInReturn.kt");
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/codeInsight/unwrapAndRemove/removeCatch")
    public static class RemoveCatch extends AbstractUnwrapRemoveTest {
        @java.lang.Override
        @org.jetbrains.annotations.NotNull
        public final KotlinPluginMode getPluginMode() {
            return KotlinPluginMode.K1;
        }

        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doTestCatchRemover, this, testDataFilePath);
        }

        @TestMetadata("catch.kt")
        public void testCatch() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/removeCatch/catch.kt");
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/codeInsight/unwrapAndRemove/unwrapFinally")
    public static class UnwrapFinally extends AbstractUnwrapRemoveTest {
        @java.lang.Override
        @org.jetbrains.annotations.NotNull
        public final KotlinPluginMode getPluginMode() {
            return KotlinPluginMode.K1;
        }

        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doTestFinallyUnwrapper, this, testDataFilePath);
        }

        @TestMetadata("finallyCompoundInBlock.kt")
        public void testFinallyCompoundInBlock() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapFinally/finallyCompoundInBlock.kt");
        }

        @TestMetadata("finallyCompoundInReturn.kt")
        public void testFinallyCompoundInReturn() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapFinally/finallyCompoundInReturn.kt");
        }

        @TestMetadata("finallySimpleInReturn.kt")
        public void testFinallySimpleInReturn() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapFinally/finallySimpleInReturn.kt");
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/codeInsight/unwrapAndRemove/removeFinally")
    public static class RemoveFinally extends AbstractUnwrapRemoveTest {
        @java.lang.Override
        @org.jetbrains.annotations.NotNull
        public final KotlinPluginMode getPluginMode() {
            return KotlinPluginMode.K1;
        }

        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doTestFinallyRemover, this, testDataFilePath);
        }

        @TestMetadata("finallyInBlock.kt")
        public void testFinallyInBlock() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/removeFinally/finallyInBlock.kt");
        }

        @TestMetadata("finallyInReturn.kt")
        public void testFinallyInReturn() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/removeFinally/finallyInReturn.kt");
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/codeInsight/unwrapAndRemove/unwrapLambda")
    public static class UnwrapLambda extends AbstractUnwrapRemoveTest {
        @java.lang.Override
        @org.jetbrains.annotations.NotNull
        public final KotlinPluginMode getPluginMode() {
            return KotlinPluginMode.K1;
        }

        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doTestLambdaUnwrapper, this, testDataFilePath);
        }

        @TestMetadata("lambdaCallCompoundInBlock.kt")
        public void testLambdaCallCompoundInBlock() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapLambda/lambdaCallCompoundInBlock.kt");
        }

        @TestMetadata("lambdaCallCompoundInReturn.kt")
        public void testLambdaCallCompoundInReturn() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapLambda/lambdaCallCompoundInReturn.kt");
        }

        @TestMetadata("lambdaCallInBlock.kt")
        public void testLambdaCallInBlock() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapLambda/lambdaCallInBlock.kt");
        }

        @TestMetadata("lambdaCallInBlock2.kt")
        public void testLambdaCallInBlock2() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapLambda/lambdaCallInBlock2.kt");
        }

        @TestMetadata("lambdaCallSimpleInReturn.kt")
        public void testLambdaCallSimpleInReturn() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapLambda/lambdaCallSimpleInReturn.kt");
        }

        @TestMetadata("lambdaInBlock.kt")
        public void testLambdaInBlock() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapLambda/lambdaInBlock.kt");
        }

        @TestMetadata("lambdaNonLocalPropertyCompoundInBlock.kt")
        public void testLambdaNonLocalPropertyCompoundInBlock() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapLambda/lambdaNonLocalPropertyCompoundInBlock.kt");
        }

        @TestMetadata("lambdaNonLocalPropertyInBlock.kt")
        public void testLambdaNonLocalPropertyInBlock() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapLambda/lambdaNonLocalPropertyInBlock.kt");
        }

        @TestMetadata("lambdaPropertyCompoundInBlock.kt")
        public void testLambdaPropertyCompoundInBlock() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapLambda/lambdaPropertyCompoundInBlock.kt");
        }

        @TestMetadata("lambdaPropertyInBlock.kt")
        public void testLambdaPropertyInBlock() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapLambda/lambdaPropertyInBlock.kt");
        }

        @TestMetadata("lambdaWithQualifiedReceiver.kt")
        public void testLambdaWithQualifiedReceiver() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapLambda/lambdaWithQualifiedReceiver.kt");
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/codeInsight/unwrapAndRemove/unwrapFunctionParameter")
    public static class UnwrapFunctionParameter extends AbstractUnwrapRemoveTest {
        @java.lang.Override
        @org.jetbrains.annotations.NotNull
        public final KotlinPluginMode getPluginMode() {
            return KotlinPluginMode.K1;
        }

        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doTestFunctionParameterUnwrapper, this, testDataFilePath);
        }

        @TestMetadata("caretBeforeComma.kt")
        public void testCaretBeforeComma() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapFunctionParameter/caretBeforeComma.kt");
        }

        @TestMetadata("caretInComment1.kt")
        public void testCaretInComment1() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapFunctionParameter/caretInComment1.kt");
        }

        @TestMetadata("caretInComment2.kt")
        public void testCaretInComment2() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapFunctionParameter/caretInComment2.kt");
        }

        @TestMetadata("caretInLambda.kt")
        public void testCaretInLambda() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapFunctionParameter/caretInLambda.kt");
        }

        @TestMetadata("caretInLambda2.kt")
        public void testCaretInLambda2() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapFunctionParameter/caretInLambda2.kt");
        }

        @TestMetadata("caretInLambda3.kt")
        public void testCaretInLambda3() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapFunctionParameter/caretInLambda3.kt");
        }

        @TestMetadata("caretInQualifier1.kt")
        public void testCaretInQualifier1() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapFunctionParameter/caretInQualifier1.kt");
        }

        @TestMetadata("caretInQualifier2.kt")
        public void testCaretInQualifier2() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapFunctionParameter/caretInQualifier2.kt");
        }

        @TestMetadata("caretInQualifier3.kt")
        public void testCaretInQualifier3() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapFunctionParameter/caretInQualifier3.kt");
        }

        @TestMetadata("caretInQualifier4.kt")
        public void testCaretInQualifier4() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapFunctionParameter/caretInQualifier4.kt");
        }

        @TestMetadata("caretInQualifier5.kt")
        public void testCaretInQualifier5() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapFunctionParameter/caretInQualifier5.kt");
        }

        @TestMetadata("caretInQualifier6.kt")
        public void testCaretInQualifier6() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapFunctionParameter/caretInQualifier6.kt");
        }

        @TestMetadata("caretInQualifier7.kt")
        public void testCaretInQualifier7() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapFunctionParameter/caretInQualifier7.kt");
        }

        @TestMetadata("functionHasMultiParam.kt")
        public void testFunctionHasMultiParam() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapFunctionParameter/functionHasMultiParam.kt");
        }

        @TestMetadata("functionHasMultiParam1.kt")
        public void testFunctionHasMultiParam1() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapFunctionParameter/functionHasMultiParam1.kt");
        }

        @TestMetadata("functionHasMultiParam2.kt")
        public void testFunctionHasMultiParam2() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapFunctionParameter/functionHasMultiParam2.kt");
        }

        @TestMetadata("functionHasSingleParam.kt")
        public void testFunctionHasSingleParam() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapFunctionParameter/functionHasSingleParam.kt");
        }

        @TestMetadata("nestedFunctionWithReceiver.kt")
        public void testNestedFunctionWithReceiver() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapFunctionParameter/nestedFunctionWithReceiver.kt");
        }

        @TestMetadata("nestedSingleParamCall.kt")
        public void testNestedSingleParamCall() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapFunctionParameter/nestedSingleParamCall.kt");
        }

        @TestMetadata("nestedSingleParamCall.option1.kt")
        public void testNestedSingleParamCall_option1() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapFunctionParameter/nestedSingleParamCall.option1.kt");
        }

        @TestMetadata("topLevelMultiParamCall_beforeIdentifier.kt")
        public void testTopLevelMultiParamCall_beforeIdentifier() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapFunctionParameter/topLevelMultiParamCall_beforeIdentifier.kt");
        }

        @TestMetadata("topLevelMultiParamCall_beforeLeftParen.kt")
        public void testTopLevelMultiParamCall_beforeLeftParen() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapFunctionParameter/topLevelMultiParamCall_beforeLeftParen.kt");
        }

        @TestMetadata("topLevelMultiParamCall_beforeRightParen.kt")
        public void testTopLevelMultiParamCall_beforeRightParen() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapFunctionParameter/topLevelMultiParamCall_beforeRightParen.kt");
        }

        @TestMetadata("topLevelMultiParamCall_onIdentifier.kt")
        public void testTopLevelMultiParamCall_onIdentifier() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapFunctionParameter/topLevelMultiParamCall_onIdentifier.kt");
        }

        @TestMetadata("topLevelSingleParamCall_onIdentifier.kt")
        public void testTopLevelSingleParamCall_onIdentifier() throws Exception {
            runTest("testData/codeInsight/unwrapAndRemove/unwrapFunctionParameter/topLevelSingleParamCall_onIdentifier.kt");
        }
    }
}
