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

package org.jetbrains.kotlin.idea.refactoring.introduce;

import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.idea.test.JUnit3RunnerWithInners;
import org.jetbrains.kotlin.idea.test.KotlinTestUtils;
import org.jetbrains.kotlin.test.TestMetadata;
import org.jetbrains.kotlin.idea.base.test.TestRoot;
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 ExtractionTestGenerated extends AbstractExtractionTest {
    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/refactoring/introduceVariable")
    public abstract static class IntroduceVariable extends AbstractExtractionTest {
        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/introduceVariable/explicateTypeArguments")
        public static class ExplicateTypeArguments extends AbstractExtractionTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doIntroduceVariableTest, this, testDataFilePath);
            }

            @TestMetadata("DeeperNestedCall.kt")
            public void testDeeperNestedCall() throws Exception {
                runTest("testData/refactoring/introduceVariable/explicateTypeArguments/DeeperNestedCall.kt");
            }

            @TestMetadata("NestedCall.kt")
            public void testNestedCall() throws Exception {
                runTest("testData/refactoring/introduceVariable/explicateTypeArguments/NestedCall.kt");
            }

            @TestMetadata("Parenthesized.kt")
            public void testParenthesized() throws Exception {
                runTest("testData/refactoring/introduceVariable/explicateTypeArguments/Parenthesized.kt");
            }

            @TestMetadata("Qualified.kt")
            public void testQualified() throws Exception {
                runTest("testData/refactoring/introduceVariable/explicateTypeArguments/Qualified.kt");
            }

            @TestMetadata("Simple.kt")
            public void testSimple() throws Exception {
                runTest("testData/refactoring/introduceVariable/explicateTypeArguments/Simple.kt");
            }

            @TestMetadata("UnmatchedOccurrences.kt")
            public void testUnmatchedOccurrences() throws Exception {
                runTest("testData/refactoring/introduceVariable/explicateTypeArguments/UnmatchedOccurrences.kt");
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/introduceVariable/extractToScope")
        public static class ExtractToScope extends AbstractExtractionTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doIntroduceVariableTest, this, testDataFilePath);
            }

            @TestMetadata("implicitOuterThisInsideNestedLamba.kt")
            public void testImplicitOuterThisInsideNestedLamba() throws Exception {
                runTest("testData/refactoring/introduceVariable/extractToScope/implicitOuterThisInsideNestedLamba.kt");
            }

            @TestMetadata("implicitThisInsideNestedLamba.kt")
            public void testImplicitThisInsideNestedLamba() throws Exception {
                runTest("testData/refactoring/introduceVariable/extractToScope/implicitThisInsideNestedLamba.kt");
            }

            @TestMetadata("insideFunExpression.kt")
            public void testInsideFunExpression() throws Exception {
                runTest("testData/refactoring/introduceVariable/extractToScope/insideFunExpression.kt");
            }

            @TestMetadata("insideFunExpressionWithBlock.kt")
            public void testInsideFunExpressionWithBlock() throws Exception {
                runTest("testData/refactoring/introduceVariable/extractToScope/insideFunExpressionWithBlock.kt");
            }

            @TestMetadata("insideLamba.kt")
            public void testInsideLamba() throws Exception {
                runTest("testData/refactoring/introduceVariable/extractToScope/insideLamba.kt");
            }

            @TestMetadata("insideNestedFunExpression.kt")
            public void testInsideNestedFunExpression() throws Exception {
                runTest("testData/refactoring/introduceVariable/extractToScope/insideNestedFunExpression.kt");
            }

            @TestMetadata("insideNestedFunExpressionInLambda.kt")
            public void testInsideNestedFunExpressionInLambda() throws Exception {
                runTest("testData/refactoring/introduceVariable/extractToScope/insideNestedFunExpressionInLambda.kt");
            }

            @TestMetadata("insideNestedLamba.kt")
            public void testInsideNestedLamba() throws Exception {
                runTest("testData/refactoring/introduceVariable/extractToScope/insideNestedLamba.kt");
            }

            @TestMetadata("insideNestedLambdaInFunExpression.kt")
            public void testInsideNestedLambdaInFunExpression() throws Exception {
                runTest("testData/refactoring/introduceVariable/extractToScope/insideNestedLambdaInFunExpression.kt");
            }

            @TestMetadata("itInsideNestedLamba.kt")
            public void testItInsideNestedLamba() throws Exception {
                runTest("testData/refactoring/introduceVariable/extractToScope/itInsideNestedLamba.kt");
            }

            @TestMetadata("outerItInsideNestedLamba.kt")
            public void testOuterItInsideNestedLamba() throws Exception {
                runTest("testData/refactoring/introduceVariable/extractToScope/outerItInsideNestedLamba.kt");
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/introduceVariable/multiDeclarations")
        public static class MultiDeclarations extends AbstractExtractionTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doIntroduceVariableTest, this, testDataFilePath);
            }

            @TestMetadata("array.kt")
            public void testArray() throws Exception {
                runTest("testData/refactoring/introduceVariable/multiDeclarations/array.kt");
            }

            @TestMetadata("intArray.kt")
            public void testIntArray() throws Exception {
                runTest("testData/refactoring/introduceVariable/multiDeclarations/intArray.kt");
            }

            @TestMetadata("list.kt")
            public void testList() throws Exception {
                runTest("testData/refactoring/introduceVariable/multiDeclarations/list.kt");
            }

            @TestMetadata("notOperators.kt")
            public void testNotOperators() throws Exception {
                runTest("testData/refactoring/introduceVariable/multiDeclarations/notOperators.kt");
            }

            @TestMetadata("singleComponent.kt")
            public void testSingleComponent() throws Exception {
                runTest("testData/refactoring/introduceVariable/multiDeclarations/singleComponent.kt");
            }

            @TestMetadata("unresolvedComponent3.kt")
            public void testUnresolvedComponent3() throws Exception {
                runTest("testData/refactoring/introduceVariable/multiDeclarations/unresolvedComponent3.kt");
            }

            @TestMetadata("unusedExpr.kt")
            public void testUnusedExpr() throws Exception {
                runTest("testData/refactoring/introduceVariable/multiDeclarations/unusedExpr.kt");
            }

            @TestMetadata("usedExpr.kt")
            public void testUsedExpr() throws Exception {
                runTest("testData/refactoring/introduceVariable/multiDeclarations/usedExpr.kt");
            }

            @TestMetadata("userDataClass.kt")
            public void testUserDataClass() throws Exception {
                runTest("testData/refactoring/introduceVariable/multiDeclarations/userDataClass.kt");
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/introduceVariable/script")
        public static class Script extends AbstractExtractionTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doIntroduceVariableTest, this, testDataFilePath);
            }

            @TestMetadata("ExpressionPart.kts")
            public void testExpressionPart() throws Exception {
                runTest("testData/refactoring/introduceVariable/script/ExpressionPart.kts");
            }

            @TestMetadata("NotExpression.kts")
            public void testNotExpression() throws Exception {
                runTest("testData/refactoring/introduceVariable/script/NotExpression.kts");
            }

            @TestMetadata("TopLevelExpression.kts")
            public void testTopLevelExpression() throws Exception {
                runTest("testData/refactoring/introduceVariable/script/TopLevelExpression.kts");
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/introduceVariable/stringTemplates")
        public static class StringTemplates extends AbstractExtractionTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doIntroduceVariableTest, this, testDataFilePath);
            }

            @TestMetadata("brokenEntryWithBlockExpr.kt")
            public void testBrokenEntryWithBlockExpr() throws Exception {
                runTest("testData/refactoring/introduceVariable/stringTemplates/brokenEntryWithBlockExpr.kt");
            }

            @TestMetadata("brokenEntryWithExpr.kt")
            public void testBrokenEntryWithExpr() throws Exception {
                runTest("testData/refactoring/introduceVariable/stringTemplates/brokenEntryWithExpr.kt");
            }

            @TestMetadata("brokenEscapeEntry.kt")
            public void testBrokenEscapeEntry() throws Exception {
                runTest("testData/refactoring/introduceVariable/stringTemplates/brokenEscapeEntry.kt");
            }

            @TestMetadata("extractFalse.kt")
            public void testExtractFalse() throws Exception {
                runTest("testData/refactoring/introduceVariable/stringTemplates/extractFalse.kt");
            }

            @TestMetadata("extractIntegerLiteral.kt")
            public void testExtractIntegerLiteral() throws Exception {
                runTest("testData/refactoring/introduceVariable/stringTemplates/extractIntegerLiteral.kt");
            }

            @TestMetadata("extractTrue.kt")
            public void testExtractTrue() throws Exception {
                runTest("testData/refactoring/introduceVariable/stringTemplates/extractTrue.kt");
            }

            @TestMetadata("extractTrueWithSpaces.kt")
            public void testExtractTrueWithSpaces() throws Exception {
                runTest("testData/refactoring/introduceVariable/stringTemplates/extractTrueWithSpaces.kt");
            }

            @TestMetadata("fullContent.kt")
            public void testFullContent() throws Exception {
                runTest("testData/refactoring/introduceVariable/stringTemplates/fullContent.kt");
            }

            @TestMetadata("fullEntryWithBlockExpr.kt")
            public void testFullEntryWithBlockExpr() throws Exception {
                runTest("testData/refactoring/introduceVariable/stringTemplates/fullEntryWithBlockExpr.kt");
            }

            @TestMetadata("fullEntryWithSimpleName.kt")
            public void testFullEntryWithSimpleName() throws Exception {
                runTest("testData/refactoring/introduceVariable/stringTemplates/fullEntryWithSimpleName.kt");
            }

            @TestMetadata("multipleEntriesWithPrefix.kt")
            public void testMultipleEntriesWithPrefix() throws Exception {
                runTest("testData/refactoring/introduceVariable/stringTemplates/multipleEntriesWithPrefix.kt");
            }

            @TestMetadata("multipleEntriesWithSubstring.kt")
            public void testMultipleEntriesWithSubstring() throws Exception {
                runTest("testData/refactoring/introduceVariable/stringTemplates/multipleEntriesWithSubstring.kt");
            }

            @TestMetadata("multipleEntriesWithSuffix.kt")
            public void testMultipleEntriesWithSuffix() throws Exception {
                runTest("testData/refactoring/introduceVariable/stringTemplates/multipleEntriesWithSuffix.kt");
            }

            @TestMetadata("rawTemplateWithSubstring.kt")
            public void testRawTemplateWithSubstring() throws Exception {
                runTest("testData/refactoring/introduceVariable/stringTemplates/rawTemplateWithSubstring.kt");
            }

            @TestMetadata("singleEntryPrefix.kt")
            public void testSingleEntryPrefix() throws Exception {
                runTest("testData/refactoring/introduceVariable/stringTemplates/singleEntryPrefix.kt");
            }

            @TestMetadata("singleEntrySubstring.kt")
            public void testSingleEntrySubstring() throws Exception {
                runTest("testData/refactoring/introduceVariable/stringTemplates/singleEntrySubstring.kt");
            }

            @TestMetadata("singleEntrySuffix.kt")
            public void testSingleEntrySuffix() throws Exception {
                runTest("testData/refactoring/introduceVariable/stringTemplates/singleEntrySuffix.kt");
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/introduceVariable")
        public static class Uncategorized extends AbstractExtractionTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doIntroduceVariableTest, this, testDataFilePath);
            }

            @TestMetadata("AnonymousType.kt")
            public void testAnonymousType() throws Exception {
                runTest("testData/refactoring/introduceVariable/AnonymousType.kt");
            }

            @TestMetadata("ArrayAccessExpr.kt")
            public void testArrayAccessExpr() throws Exception {
                runTest("testData/refactoring/introduceVariable/ArrayAccessExpr.kt");
            }

            @TestMetadata("arrayAssignment.kt")
            public void testArrayAssignment() throws Exception {
                runTest("testData/refactoring/introduceVariable/arrayAssignment.kt");
            }

            @TestMetadata("callUnderSmartCast.kt")
            public void testCallUnderSmartCast() throws Exception {
                runTest("testData/refactoring/introduceVariable/callUnderSmartCast.kt");
            }

            @TestMetadata("capturedType.kt")
            public void testCapturedType() throws Exception {
                runTest("testData/refactoring/introduceVariable/capturedType.kt");
            }

            @TestMetadata("commentSkipping.kt")
            public void testCommentSkipping() throws Exception {
                runTest("testData/refactoring/introduceVariable/commentSkipping.kt");
            }

            @TestMetadata("ComplexCallee.kt")
            public void testComplexCallee() throws Exception {
                runTest("testData/refactoring/introduceVariable/ComplexCallee.kt");
            }

            @TestMetadata("ConstructorDelegationCall.kt")
            public void testConstructorDelegationCall() throws Exception {
                runTest("testData/refactoring/introduceVariable/ConstructorDelegationCall.kt");
            }

            @TestMetadata("DelegatorByExpressionInDelegate.kt")
            public void testDelegatorByExpressionInDelegate() throws Exception {
                runTest("testData/refactoring/introduceVariable/DelegatorByExpressionInDelegate.kt");
            }

            @TestMetadata("DelegatorByExpressionInType.kt")
            public void testDelegatorByExpressionInType() throws Exception {
                runTest("testData/refactoring/introduceVariable/DelegatorByExpressionInType.kt");
            }

            @TestMetadata("DelegatorToSuperCallInArgument.kt")
            public void testDelegatorToSuperCallInArgument() throws Exception {
                runTest("testData/refactoring/introduceVariable/DelegatorToSuperCallInArgument.kt");
            }

            @TestMetadata("DelegatorToSuperCallInType.kt")
            public void testDelegatorToSuperCallInType() throws Exception {
                runTest("testData/refactoring/introduceVariable/DelegatorToSuperCallInType.kt");
            }

            @TestMetadata("DelegatorToSuperClass.kt")
            public void testDelegatorToSuperClass() throws Exception {
                runTest("testData/refactoring/introduceVariable/DelegatorToSuperClass.kt");
            }

            @TestMetadata("DoWhileAddBlock.kt")
            public void testDoWhileAddBlock() throws Exception {
                runTest("testData/refactoring/introduceVariable/DoWhileAddBlock.kt");
            }

            @TestMetadata("DoWhileAddBlockInner.kt")
            public void testDoWhileAddBlockInner() throws Exception {
                runTest("testData/refactoring/introduceVariable/DoWhileAddBlockInner.kt");
            }

            @TestMetadata("dynamicType.kt")
            public void testDynamicType() throws Exception {
                runTest("testData/refactoring/introduceVariable/dynamicType.kt");
            }

            @TestMetadata("FewOccurrences.kt")
            public void testFewOccurrences() throws Exception {
                runTest("testData/refactoring/introduceVariable/FewOccurrences.kt");
            }

            @TestMetadata("FromLambda.kt")
            public void testFromLambda() throws Exception {
                runTest("testData/refactoring/introduceVariable/FromLambda.kt");
            }

            @TestMetadata("FunctionAddBlock.kt")
            public void testFunctionAddBlock() throws Exception {
                runTest("testData/refactoring/introduceVariable/FunctionAddBlock.kt");
            }

            @TestMetadata("FunctionAddBlockInner.kt")
            public void testFunctionAddBlockInner() throws Exception {
                runTest("testData/refactoring/introduceVariable/FunctionAddBlockInner.kt");
            }

            @TestMetadata("FunctionLiteral.kt")
            public void testFunctionLiteral() throws Exception {
                runTest("testData/refactoring/introduceVariable/FunctionLiteral.kt");
            }

            @TestMetadata("FunctionLiteralFromExpected.kt")
            public void testFunctionLiteralFromExpected() throws Exception {
                runTest("testData/refactoring/introduceVariable/FunctionLiteralFromExpected.kt");
            }

            @TestMetadata("FunctionLiteralWithExtraArgs.kt")
            public void testFunctionLiteralWithExtraArgs() throws Exception {
                runTest("testData/refactoring/introduceVariable/FunctionLiteralWithExtraArgs.kt");
            }

            @TestMetadata("IfCondition.kt")
            public void testIfCondition() throws Exception {
                runTest("testData/refactoring/introduceVariable/IfCondition.kt");
            }

            @TestMetadata("IfElseAddBlock.kt")
            public void testIfElseAddBlock() throws Exception {
                runTest("testData/refactoring/introduceVariable/IfElseAddBlock.kt");
            }

            @TestMetadata("IfElseAddBlockInner.kt")
            public void testIfElseAddBlockInner() throws Exception {
                runTest("testData/refactoring/introduceVariable/IfElseAddBlockInner.kt");
            }

            @TestMetadata("IfThenAddBlock.kt")
            public void testIfThenAddBlock() throws Exception {
                runTest("testData/refactoring/introduceVariable/IfThenAddBlock.kt");
            }

            @TestMetadata("IfThenAddBlockInner.kt")
            public void testIfThenAddBlockInner() throws Exception {
                runTest("testData/refactoring/introduceVariable/IfThenAddBlockInner.kt");
            }

            @TestMetadata("IfThenValuedAddBlock.kt")
            public void testIfThenValuedAddBlock() throws Exception {
                runTest("testData/refactoring/introduceVariable/IfThenValuedAddBlock.kt");
            }

            @TestMetadata("InsideOfInitializerAnnotation.kt")
            public void testInsideOfInitializerAnnotation() throws Exception {
                runTest("testData/refactoring/introduceVariable/InsideOfInitializerAnnotation.kt");
            }

            @TestMetadata("IntroduceAndCreateBlock.kt")
            public void testIntroduceAndCreateBlock() throws Exception {
                runTest("testData/refactoring/introduceVariable/IntroduceAndCreateBlock.kt");
            }

            @TestMetadata("IntroduceLambdaAndCreateBlock.kt")
            public void testIntroduceLambdaAndCreateBlock() throws Exception {
                runTest("testData/refactoring/introduceVariable/IntroduceLambdaAndCreateBlock.kt");
            }

            @TestMetadata("introduceToClass.kt")
            public void testIntroduceToClass() throws Exception {
                runTest("testData/refactoring/introduceVariable/introduceToClass.kt");
            }

            @TestMetadata("introduceToFile.kt")
            public void testIntroduceToFile() throws Exception {
                runTest("testData/refactoring/introduceVariable/introduceToFile.kt");
            }

            @TestMetadata("It.kt")
            public void testIt() throws Exception {
                runTest("testData/refactoring/introduceVariable/It.kt");
            }

            @TestMetadata("kt10808.kt")
            public void testKt10808() throws Exception {
                runTest("testData/refactoring/introduceVariable/kt10808.kt");
            }

            @TestMetadata("kt21530_withConstructorParam.kt")
            public void testKt21530_withConstructorParam() throws Exception {
                runTest("testData/refactoring/introduceVariable/kt21530_withConstructorParam.kt");
            }

            @TestMetadata("kt21530_withGlobal.kt")
            public void testKt21530_withGlobal() throws Exception {
                runTest("testData/refactoring/introduceVariable/kt21530_withGlobal.kt");
            }

            @TestMetadata("kt21530_withParam.kt")
            public void testKt21530_withParam() throws Exception {
                runTest("testData/refactoring/introduceVariable/kt21530_withParam.kt");
            }

            @TestMetadata("kt38449_int.kt")
            public void testKt38449_int() throws Exception {
                runTest("testData/refactoring/introduceVariable/kt38449_int.kt");
            }

            @TestMetadata("kt38449_unit.kt")
            public void testKt38449_unit() throws Exception {
                runTest("testData/refactoring/introduceVariable/kt38449_unit.kt");
            }

            @TestMetadata("ktij817.kt")
            public void testKtij817() throws Exception {
                runTest("testData/refactoring/introduceVariable/ktij817.kt");
            }

            @TestMetadata("LoopRange.kt")
            public void testLoopRange() throws Exception {
                runTest("testData/refactoring/introduceVariable/LoopRange.kt");
            }

            @TestMetadata("ManyInnerOccurences.kt")
            public void testManyInnerOccurences() throws Exception {
                runTest("testData/refactoring/introduceVariable/ManyInnerOccurences.kt");
            }

            @TestMetadata("ManyOccurrences.kt")
            public void testManyOccurrences() throws Exception {
                runTest("testData/refactoring/introduceVariable/ManyOccurrences.kt");
            }

            @TestMetadata("multilineBinaryExpression.kt")
            public void testMultilineBinaryExpression() throws Exception {
                runTest("testData/refactoring/introduceVariable/multilineBinaryExpression.kt");
            }

            @TestMetadata("multilineBinaryExpressionWithComments.kt")
            public void testMultilineBinaryExpressionWithComments() throws Exception {
                runTest("testData/refactoring/introduceVariable/multilineBinaryExpressionWithComments.kt");
            }

            @TestMetadata("multilineNestedBinaryExpression1.kt")
            public void testMultilineNestedBinaryExpression1() throws Exception {
                runTest("testData/refactoring/introduceVariable/multilineNestedBinaryExpression1.kt");
            }

            @TestMetadata("multilineNestedBinaryExpression2.kt")
            public void testMultilineNestedBinaryExpression2() throws Exception {
                runTest("testData/refactoring/introduceVariable/multilineNestedBinaryExpression2.kt");
            }

            @TestMetadata("NameSuggestionBug1.kt")
            public void testNameSuggestionBug1() throws Exception {
                runTest("testData/refactoring/introduceVariable/NameSuggestionBug1.kt");
            }

            @TestMetadata("NameSuggestionBug2.kt")
            public void testNameSuggestionBug2() throws Exception {
                runTest("testData/refactoring/introduceVariable/NameSuggestionBug2.kt");
            }

            @TestMetadata("NameSuggestionCheckVisibility.kt")
            public void testNameSuggestionCheckVisibility() throws Exception {
                runTest("testData/refactoring/introduceVariable/NameSuggestionCheckVisibility.kt");
            }

            @TestMetadata("noConflictWithInnerVariable.kt")
            public void testNoConflictWithInnerVariable() throws Exception {
                runTest("testData/refactoring/introduceVariable/noConflictWithInnerVariable.kt");
            }

            @TestMetadata("NoExplicitReceivers.kt")
            public void testNoExplicitReceivers() throws Exception {
                runTest("testData/refactoring/introduceVariable/NoExplicitReceivers.kt");
            }

            @TestMetadata("NoExplicitReceiversUnresolved.kt")
            public void testNoExplicitReceiversUnresolved() throws Exception {
                runTest("testData/refactoring/introduceVariable/NoExplicitReceiversUnresolved.kt");
            }

            @TestMetadata("NoNewLinesInBetween.kt")
            public void testNoNewLinesInBetween() throws Exception {
                runTest("testData/refactoring/introduceVariable/NoNewLinesInBetween.kt");
            }

            @TestMetadata("NoNewLinesInBetweenNoBraces.kt")
            public void testNoNewLinesInBetweenNoBraces() throws Exception {
                runTest("testData/refactoring/introduceVariable/NoNewLinesInBetweenNoBraces.kt");
            }

            @TestMetadata("nonEquivalentReceivers.kt")
            public void testNonEquivalentReceivers() throws Exception {
                runTest("testData/refactoring/introduceVariable/nonEquivalentReceivers.kt");
            }

            @TestMetadata("notNullAssertion.kt")
            public void testNotNullAssertion() throws Exception {
                runTest("testData/refactoring/introduceVariable/notNullAssertion.kt");
            }

            @TestMetadata("OccurrencesInStringTemplate.kt")
            public void testOccurrencesInStringTemplate() throws Exception {
                runTest("testData/refactoring/introduceVariable/OccurrencesInStringTemplate.kt");
            }

            @TestMetadata("onAssignmentLHS.kt")
            public void testOnAssignmentLHS() throws Exception {
                runTest("testData/refactoring/introduceVariable/onAssignmentLHS.kt");
            }

            @TestMetadata("OneExplicitReceiver.kt")
            public void testOneExplicitReceiver() throws Exception {
                runTest("testData/refactoring/introduceVariable/OneExplicitReceiver.kt");
            }

            @TestMetadata("PropertyAccessorAddBlock.kt")
            public void testPropertyAccessorAddBlock() throws Exception {
                runTest("testData/refactoring/introduceVariable/PropertyAccessorAddBlock.kt");
            }

            @TestMetadata("PropertyAccessorAddBlockInner.kt")
            public void testPropertyAccessorAddBlockInner() throws Exception {
                runTest("testData/refactoring/introduceVariable/PropertyAccessorAddBlockInner.kt");
            }

            @TestMetadata("qualifier.kt")
            public void testQualifier() throws Exception {
                runTest("testData/refactoring/introduceVariable/qualifier.kt");
            }

            @TestMetadata("ReplaceOccurence.kt")
            public void testReplaceOccurence() throws Exception {
                runTest("testData/refactoring/introduceVariable/ReplaceOccurence.kt");
            }

            @TestMetadata("selectorAssignment.kt")
            public void testSelectorAssignment() throws Exception {
                runTest("testData/refactoring/introduceVariable/selectorAssignment.kt");
            }

            @TestMetadata("Simple.kt")
            public void testSimple() throws Exception {
                runTest("testData/refactoring/introduceVariable/Simple.kt");
            }

            @TestMetadata("SimpleCreateValue.kt")
            public void testSimpleCreateValue() throws Exception {
                runTest("testData/refactoring/introduceVariable/SimpleCreateValue.kt");
            }

            @TestMetadata("skipClassReference.kt")
            public void testSkipClassReference() throws Exception {
                runTest("testData/refactoring/introduceVariable/skipClassReference.kt");
            }

            @TestMetadata("skipUsageInAssignmentLHS.kt")
            public void testSkipUsageInAssignmentLHS() throws Exception {
                runTest("testData/refactoring/introduceVariable/skipUsageInAssignmentLHS.kt");
            }

            @TestMetadata("StringInjection.kt")
            public void testStringInjection() throws Exception {
                runTest("testData/refactoring/introduceVariable/StringInjection.kt");
            }

            @TestMetadata("SuperReference.kt")
            public void testSuperReference() throws Exception {
                runTest("testData/refactoring/introduceVariable/SuperReference.kt");
            }

            @TestMetadata("thisAsCallee.kt")
            public void testThisAsCallee() throws Exception {
                runTest("testData/refactoring/introduceVariable/thisAsCallee.kt");
            }

            @TestMetadata("ThisReference.kt")
            public void testThisReference() throws Exception {
                runTest("testData/refactoring/introduceVariable/ThisReference.kt");
            }

            @TestMetadata("TwoExplicitReceivers.kt")
            public void testTwoExplicitReceivers() throws Exception {
                runTest("testData/refactoring/introduceVariable/TwoExplicitReceivers.kt");
            }

            @TestMetadata("TypeElement.kt")
            public void testTypeElement() throws Exception {
                runTest("testData/refactoring/introduceVariable/TypeElement.kt");
            }

            @TestMetadata("UnresolvedOccurrences.kt")
            public void testUnresolvedOccurrences() throws Exception {
                runTest("testData/refactoring/introduceVariable/UnresolvedOccurrences.kt");
            }

            @TestMetadata("UsedAndUnusedExpressions1.kt")
            public void testUsedAndUnusedExpressions1() throws Exception {
                runTest("testData/refactoring/introduceVariable/UsedAndUnusedExpressions1.kt");
            }

            @TestMetadata("UsedAndUnusedExpressions2.kt")
            public void testUsedAndUnusedExpressions2() throws Exception {
                runTest("testData/refactoring/introduceVariable/UsedAndUnusedExpressions2.kt");
            }

            @TestMetadata("WhenAddBlock.kt")
            public void testWhenAddBlock() throws Exception {
                runTest("testData/refactoring/introduceVariable/WhenAddBlock.kt");
            }

            @TestMetadata("WhenAddBlockInner.kt")
            public void testWhenAddBlockInner() throws Exception {
                runTest("testData/refactoring/introduceVariable/WhenAddBlockInner.kt");
            }

            @TestMetadata("WhenEntryCondition.kt")
            public void testWhenEntryCondition() throws Exception {
                runTest("testData/refactoring/introduceVariable/WhenEntryCondition.kt");
            }

            @TestMetadata("WhenParts.kt")
            public void testWhenParts() throws Exception {
                runTest("testData/refactoring/introduceVariable/WhenParts.kt");
            }

            @TestMetadata("WhenValuedAddBlock.kt")
            public void testWhenValuedAddBlock() throws Exception {
                runTest("testData/refactoring/introduceVariable/WhenValuedAddBlock.kt");
            }

            @TestMetadata("WhileAddBlock.kt")
            public void testWhileAddBlock() throws Exception {
                runTest("testData/refactoring/introduceVariable/WhileAddBlock.kt");
            }

            @TestMetadata("WhileAddBlockInner.kt")
            public void testWhileAddBlockInner() throws Exception {
                runTest("testData/refactoring/introduceVariable/WhileAddBlockInner.kt");
            }

            @TestMetadata("WhileCondition.kt")
            public void testWhileCondition() throws Exception {
                runTest("testData/refactoring/introduceVariable/WhileCondition.kt");
            }
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/refactoring/extractFunction")
    public abstract static class ExtractFunction extends AbstractExtractionTest {
        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/extractFunction/basic")
        public static class Basic extends AbstractExtractionTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
            }

            @TestMetadata("callWithLambdaArgument.kt")
            public void testCallWithLambdaArgument() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/callWithLambdaArgument.kt");
            }

            @TestMetadata("callWithPlatformTypeReceiver.kt")
            public void testCallWithPlatformTypeReceiver() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/callWithPlatformTypeReceiver.kt");
            }

            @TestMetadata("callableReferenceSelector.kt")
            public void testCallableReferenceSelector() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/callableReferenceSelector.kt");
            }

            @TestMetadata("calleeExpression.kt")
            public void testCalleeExpression() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/calleeExpression.kt");
            }

            @TestMetadata("classQualifier.kt")
            public void testClassQualifier() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/classQualifier.kt");
            }

            @TestMetadata("companionObjectMemberRef.kt")
            public void testCompanionObjectMemberRef() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/companionObjectMemberRef.kt");
            }

            @TestMetadata("convertBinaryExpression.kt")
            public void testConvertBinaryExpression() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/convertBinaryExpression.kt");
            }

            @TestMetadata("convertInfixExpression.kt")
            public void testConvertInfixExpression() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/convertInfixExpression.kt");
            }

            @TestMetadata("delegatingFunction.kt")
            public void testDelegatingFunction() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/delegatingFunction.kt");
            }

            @TestMetadata("enumQualifier.kt")
            public void testEnumQualifier() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/enumQualifier.kt");
            }

            @TestMetadata("extensionFunForArray.kt")
            public void testExtensionFunForArray() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/extensionFunForArray.kt");
            }

            @TestMetadata("extractBlockContent.kt")
            public void testExtractBlockContent() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/extractBlockContent.kt");
            }

            @TestMetadata("extractFromPrivateInlineFun.kt")
            public void testExtractFromPrivateInlineFun() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/extractFromPrivateInlineFun.kt");
            }

            @TestMetadata("extractFromPublicInlineFun.kt")
            public void testExtractFromPublicInlineFun() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/extractFromPublicInlineFun.kt");
            }

            @TestMetadata("extractSuspend.kt")
            public void testExtractSuspend() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/extractSuspend.kt");
            }

            @TestMetadata("extractToEnumClassBody.kt")
            public void testExtractToEnumClassBody() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/extractToEnumClassBody.kt");
            }

            @TestMetadata("fakeOverride.kt")
            public void testFakeOverride() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/fakeOverride.kt");
            }

            @TestMetadata("fragmentWithComment.kt")
            public void testFragmentWithComment() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/fragmentWithComment.kt");
            }

            @TestMetadata("fragmentWithMultilineComment.kt")
            public void testFragmentWithMultilineComment() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/fragmentWithMultilineComment.kt");
            }

            @TestMetadata("identityEquals.kt")
            public void testIdentityEquals() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/identityEquals.kt");
            }

            @TestMetadata("inlineReified.kt")
            public void testInlineReified() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/inlineReified.kt");
            }

            @TestMetadata("inlineReified2.kt")
            public void testInlineReified2() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/inlineReified2.kt");
            }

            @TestMetadata("interfaceFunction.kt")
            public void testInterfaceFunction() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/interfaceFunction.kt");
            }

            @TestMetadata("invisibleType.kt")
            public void testInvisibleType() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/invisibleType.kt");
            }

            @TestMetadata("lineWithSemicolon.kt")
            public void testLineWithSemicolon() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/lineWithSemicolon.kt");
            }

            @TestMetadata("localClassExtraction.kt")
            public void testLocalClassExtraction() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/localClassExtraction.kt");
            }

            @TestMetadata("localClassFunctionRef.kt")
            public void testLocalClassFunctionRef() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/localClassFunctionRef.kt");
            }

            @TestMetadata("localClassPropertyRef.kt")
            public void testLocalClassPropertyRef() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/localClassPropertyRef.kt");
            }

            @TestMetadata("localExtraction.kt")
            public void testLocalExtraction() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/localExtraction.kt");
            }

            @TestMetadata("localFunExtraction.kt")
            public void testLocalFunExtraction() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/localFunExtraction.kt");
            }

            @TestMetadata("localFunctionInTheMiddleSimpleControlFlow.kt")
            public void testLocalFunctionInTheMiddleSimpleControlFlow() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/localFunctionInTheMiddleSimpleControlFlow.kt");
            }

            @TestMetadata("localFunctionInTheMiddleUnusedVar.kt")
            public void testLocalFunctionInTheMiddleUnusedVar() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/localFunctionInTheMiddleUnusedVar.kt");
            }

            @TestMetadata("localFunctionInTheMiddleUsedVar.kt")
            public void testLocalFunctionInTheMiddleUsedVar() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/localFunctionInTheMiddleUsedVar.kt");
            }

            @TestMetadata("localFunctionRef.kt")
            public void testLocalFunctionRef() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/localFunctionRef.kt");
            }

            @TestMetadata("localObjectRef.kt")
            public void testLocalObjectRef() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/localObjectRef.kt");
            }

            @TestMetadata("malformedExpression.kt")
            public void testMalformedExpression() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/malformedExpression.kt");
            }

            @TestMetadata("malformedStatements.kt")
            public void testMalformedStatements() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/malformedStatements.kt");
            }

            @TestMetadata("memberValUnderSmartCast.kt")
            public void testMemberValUnderSmartCast() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/memberValUnderSmartCast.kt");
            }

            @TestMetadata("memberValUnderSmartCastAndImplicitReceiver.kt")
            public void testMemberValUnderSmartCastAndImplicitReceiver() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/memberValUnderSmartCastAndImplicitReceiver.kt");
            }

            @TestMetadata("misdirectedRef.kt")
            public void testMisdirectedRef() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/misdirectedRef.kt");
            }

            @TestMetadata("noConflictWithInnerFunction.kt")
            public void testNoConflictWithInnerFunction() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/noConflictWithInnerFunction.kt");
            }

            @TestMetadata("objectQualifier.kt")
            public void testObjectQualifier() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/objectQualifier.kt");
            }

            @TestMetadata("packageQualifier.kt")
            public void testPackageQualifier() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/packageQualifier.kt");
            }

            @TestMetadata("privateMemberInClassObject.kt")
            public void testPrivateMemberInClassObject() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/privateMemberInClassObject.kt");
            }

            @TestMetadata("privateMemberRef.kt")
            public void testPrivateMemberRef() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/privateMemberRef.kt");
            }

            @TestMetadata("privateNestedClass.kt")
            public void testPrivateNestedClass() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/privateNestedClass.kt");
            }

            @TestMetadata("privateSetter.kt")
            public void testPrivateSetter() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/privateSetter.kt");
            }

            @TestMetadata("refInReturn.kt")
            public void testRefInReturn() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/refInReturn.kt");
            }

            @TestMetadata("sameParameterNames.kt")
            public void testSameParameterNames() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/sameParameterNames.kt");
            }

            @TestMetadata("selectedConstructor.kt")
            public void testSelectedConstructor() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/selectedConstructor.kt");
            }

            @TestMetadata("selectedParameter.kt")
            public void testSelectedParameter() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/selectedParameter.kt");
            }

            @TestMetadata("suspendCall.kt")
            public void testSuspendCall() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/suspendCall.kt");
            }

            @TestMetadata("suspendCallWithExtractedParameter.kt")
            public void testSuspendCallWithExtractedParameter() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/suspendCallWithExtractedParameter.kt");
            }

            @TestMetadata("topLevelValUnderSmartCast.kt")
            public void testTopLevelValUnderSmartCast() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/topLevelValUnderSmartCast.kt");
            }

            @TestMetadata("unnecessaryNullabilityAnnotation.kt")
            public void testUnnecessaryNullabilityAnnotation() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/unnecessaryNullabilityAnnotation.kt");
            }

            @TestMetadata("unresolvedWrongReceiver.kt")
            public void testUnresolvedWrongReceiver() throws Exception {
                runTest("testData/refactoring/extractFunction/basic/unresolvedWrongReceiver.kt");
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/extractFunction/controlFlow")
        public abstract static class ControlFlow extends AbstractExtractionTest {
            @RunWith(JUnit3RunnerWithInners.class)
            @TestMetadata("testData/refactoring/extractFunction/controlFlow/conditionalJumps")
            public static class ConditionalJumps extends AbstractExtractionTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
                }

                @TestMetadata("conditionalBreakWithIf.kt")
                public void testConditionalBreakWithIf() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIf.kt");
                }

                @TestMetadata("conditionalBreakWithIfAndExtraVars.kt")
                public void testConditionalBreakWithIfAndExtraVars() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIfAndExtraVars.kt");
                }

                @TestMetadata("conditionalBreakWithIfElse.kt")
                public void testConditionalBreakWithIfElse() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIfElse.kt");
                }

                @TestMetadata("conditionalBreakWithWhen.kt")
                public void testConditionalBreakWithWhen() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithWhen.kt");
                }

                @TestMetadata("conditionalReturnWithIf.kt")
                public void testConditionalReturnWithIf() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIf.kt");
                }

                @TestMetadata("conditionalReturnWithIfElse.kt")
                public void testConditionalReturnWithIfElse() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIfElse.kt");
                }

                @TestMetadata("conditionalReturnWithWhen.kt")
                public void testConditionalReturnWithWhen() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithWhen.kt");
                }

                @TestMetadata("unconditionalBreakWithIf.kt")
                public void testUnconditionalBreakWithIf() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIf.kt");
                }

                @TestMetadata("unconditionalBreakWithIfElse.kt")
                public void testUnconditionalBreakWithIfElse() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIfElse.kt");
                }

                @TestMetadata("unconditionalBreakWithWhen.kt")
                public void testUnconditionalBreakWithWhen() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithWhen.kt");
                }
            }

            @RunWith(JUnit3RunnerWithInners.class)
            @TestMetadata("testData/refactoring/extractFunction/controlFlow/default")
            public static class Default extends AbstractExtractionTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
                }

                @TestMetadata("defaultCF.kt")
                public void testDefaultCF() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/default/defaultCF.kt");
                }

                @TestMetadata("defaultCFWithExtraVars.kt")
                public void testDefaultCFWithExtraVars() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/default/defaultCFWithExtraVars.kt");
                }

                @TestMetadata("defaultCFWithJumps.kt")
                public void testDefaultCFWithJumps() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/default/defaultCFWithJumps.kt");
                }

                @TestMetadata("ignoredReturnValueWithIf.kt")
                public void testIgnoredReturnValueWithIf() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithIf.kt");
                }

                @TestMetadata("ignoredReturnValueWithIfNoBlocks.kt")
                public void testIgnoredReturnValueWithIfNoBlocks() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithIfNoBlocks.kt");
                }

                @TestMetadata("ignoredReturnValueWithWhen.kt")
                public void testIgnoredReturnValueWithWhen() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithWhen.kt");
                }

                @TestMetadata("ignoredReturnValueWithWhenNoBlocks.kt")
                public void testIgnoredReturnValueWithWhenNoBlocks() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithWhenNoBlocks.kt");
                }
            }

            @RunWith(JUnit3RunnerWithInners.class)
            @TestMetadata("testData/refactoring/extractFunction/controlFlow/definiteReturns")
            public static class DefiniteReturns extends AbstractExtractionTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
                }

                @TestMetadata("definiteReturnWithIf.kt")
                public void testDefiniteReturnWithIf() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithIf.kt");
                }

                @TestMetadata("definiteReturnWithWhen.kt")
                public void testDefiniteReturnWithWhen() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithWhen.kt");
                }

                @TestMetadata("labeledAndUnlabeledReturn1.kt")
                public void testLabeledAndUnlabeledReturn1() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/definiteReturns/labeledAndUnlabeledReturn1.kt");
                }

                @TestMetadata("labeledAndUnlabeledReturn2.kt")
                public void testLabeledAndUnlabeledReturn2() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/definiteReturns/labeledAndUnlabeledReturn2.kt");
                }

                @TestMetadata("nonLocalReturn.kt")
                public void testNonLocalReturn() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/definiteReturns/nonLocalReturn.kt");
                }

                @TestMetadata("nonLocalReturnWithLabel.kt")
                public void testNonLocalReturnWithLabel() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/definiteReturns/nonLocalReturnWithLabel.kt");
                }

                @TestMetadata("returnWithLabel.kt")
                public void testReturnWithLabel() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/definiteReturns/returnWithLabel.kt");
                }

                @TestMetadata("singleDefiniteReturn.kt")
                public void testSingleDefiniteReturn() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/definiteReturns/singleDefiniteReturn.kt");
                }
            }

            @RunWith(JUnit3RunnerWithInners.class)
            @TestMetadata("testData/refactoring/extractFunction/controlFlow/evaluateExpression")
            public static class EvaluateExpression extends AbstractExtractionTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
                }

                @TestMetadata("evalExprInIfCondition.kt")
                public void testEvalExprInIfCondition() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInIfCondition.kt");
                }

                @TestMetadata("evalExprInIfElse.kt")
                public void testEvalExprInIfElse() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInIfElse.kt");
                }

                @TestMetadata("evalExprInIfThen.kt")
                public void testEvalExprInIfThen() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInIfThen.kt");
                }

                @TestMetadata("evalExprInWhenBranch.kt")
                public void testEvalExprInWhenBranch() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInWhenBranch.kt");
                }

                @TestMetadata("evalExprInWhenCondition.kt")
                public void testEvalExprInWhenCondition() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInWhenCondition.kt");
                }

                @TestMetadata("evalExprInWhenSubject.kt")
                public void testEvalExprInWhenSubject() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInWhenSubject.kt");
                }

                @TestMetadata("evalExpressionBodyFunction.kt")
                public void testEvalExpressionBodyFunction() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExpressionBodyFunction.kt");
                }

                @TestMetadata("evalIfExpr.kt")
                public void testEvalIfExpr() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalIfExpr.kt");
                }

                @TestMetadata("evalWhenExpr.kt")
                public void testEvalWhenExpr() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalWhenExpr.kt");
                }

                @TestMetadata("simpleEvalExpr.kt")
                public void testSimpleEvalExpr() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/evaluateExpression/simpleEvalExpr.kt");
                }

                @TestMetadata("trailingLambdaEmptyArgList.kt")
                public void testTrailingLambdaEmptyArgList() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/evaluateExpression/trailingLambdaEmptyArgList.kt");
                }

                @TestMetadata("trailingLambdaNoArgList.kt")
                public void testTrailingLambdaNoArgList() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/evaluateExpression/trailingLambdaNoArgList.kt");
                }

                @TestMetadata("trailingLambdaNonEmptyArgList.kt")
                public void testTrailingLambdaNonEmptyArgList() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/evaluateExpression/trailingLambdaNonEmptyArgList.kt");
                }

                @TestMetadata("trailingLambdaNonEmptyArgListWithNamedArgs.kt")
                public void testTrailingLambdaNonEmptyArgListWithNamedArgs() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/evaluateExpression/trailingLambdaNonEmptyArgListWithNamedArgs.kt");
                }
            }

            @RunWith(JUnit3RunnerWithInners.class)
            @TestMetadata("testData/refactoring/extractFunction/controlFlow/exitPointEquivalence")
            public static class ExitPointEquivalence extends AbstractExtractionTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
                }

                @TestMetadata("breakAndReturn.kt")
                public void testBreakAndReturn() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/exitPointEquivalence/breakAndReturn.kt");
                }

                @TestMetadata("breakContinueAndDefault.kt")
                public void testBreakContinueAndDefault() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/exitPointEquivalence/breakContinueAndDefault.kt");
                }

                @TestMetadata("continueAndReturn.kt")
                public void testContinueAndReturn() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/exitPointEquivalence/continueAndReturn.kt");
                }

                @TestMetadata("defaultAndBreak.kt")
                public void testDefaultAndBreak() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/exitPointEquivalence/defaultAndBreak.kt");
                }

                @TestMetadata("defaultAndContinue.kt")
                public void testDefaultAndContinue() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/exitPointEquivalence/defaultAndContinue.kt");
                }

                @TestMetadata("defaultAndReturn.kt")
                public void testDefaultAndReturn() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/exitPointEquivalence/defaultAndReturn.kt");
                }

                @TestMetadata("defaultAndReturnInWhen.kt")
                public void testDefaultAndReturnInWhen() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/exitPointEquivalence/defaultAndReturnInWhen.kt");
                }

                @TestMetadata("multipleBreaks.kt")
                public void testMultipleBreaks() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/exitPointEquivalence/multipleBreaks.kt");
                }
            }

            @RunWith(JUnit3RunnerWithInners.class)
            @TestMetadata("testData/refactoring/extractFunction/controlFlow/initializer")
            public static class Initializer extends AbstractExtractionTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
                }

                @TestMetadata("propertyWithInitializer.kt")
                public void testPropertyWithInitializer() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/initializer/propertyWithInitializer.kt");
                }

                @TestMetadata("propertyWithInitializerAndExtraVars.kt")
                public void testPropertyWithInitializerAndExtraVars() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/initializer/propertyWithInitializerAndExtraVars.kt");
                }

                @TestMetadata("propertyWithInitializerAndUnusedVars.kt")
                public void testPropertyWithInitializerAndUnusedVars() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/initializer/propertyWithInitializerAndUnusedVars.kt");
                }

                @TestMetadata("propertyWithSeparateInitializer.kt")
                public void testPropertyWithSeparateInitializer() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/initializer/propertyWithSeparateInitializer.kt");
                }

                @TestMetadata("valueUsedInAnonymousObject.kt")
                public void testValueUsedInAnonymousObject() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/initializer/valueUsedInAnonymousObject.kt");
                }

                @TestMetadata("valueUsedInLambda.kt")
                public void testValueUsedInLambda() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/initializer/valueUsedInLambda.kt");
                }

                @TestMetadata("valueUsedInLocalFunction.kt")
                public void testValueUsedInLocalFunction() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/initializer/valueUsedInLocalFunction.kt");
                }
            }

            @RunWith(JUnit3RunnerWithInners.class)
            @TestMetadata("testData/refactoring/extractFunction/controlFlow/outputValues")
            public static class OutputValues extends AbstractExtractionTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
                }

                @TestMetadata("genericPair.kt")
                public void testGenericPair() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/outputValues/genericPair.kt");
                }

                @TestMetadata("initializersAndUpdate.kt")
                public void testInitializersAndUpdate() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/outputValues/initializersAndUpdate.kt");
                }

                @TestMetadata("nestedNonInlinableCall.kt")
                public void testNestedNonInlinableCall() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/outputValues/nestedNonInlinableCall.kt");
                }

                @TestMetadata("outputValueWithExpression.kt")
                public void testOutputValueWithExpression() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/outputValues/outputValueWithExpression.kt");
                }

                @TestMetadata("outputValueWithReturn.kt")
                public void testOutputValueWithReturn() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/outputValues/outputValueWithReturn.kt");
                }

                @TestMetadata("outputValueWithSingleLineExpression.kt")
                public void testOutputValueWithSingleLineExpression() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/outputValues/outputValueWithSingleLineExpression.kt");
                }

                @TestMetadata("outputValuesWithExpression.kt")
                public void testOutputValuesWithExpression() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/outputValues/outputValuesWithExpression.kt");
                }

                @TestMetadata("pair.kt")
                public void testPair() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/outputValues/pair.kt");
                }

                @TestMetadata("pairOfInitalizersWithNonLocalUsages.kt")
                public void testPairOfInitalizersWithNonLocalUsages() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/outputValues/pairOfInitalizersWithNonLocalUsages.kt");
                }

                @TestMetadata("pairOfVarInitalizersWithNonLocalUsages.kt")
                public void testPairOfVarInitalizersWithNonLocalUsages() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/outputValues/pairOfVarInitalizersWithNonLocalUsages.kt");
                }

                @TestMetadata("pairWithIf.kt")
                public void testPairWithIf() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/outputValues/pairWithIf.kt");
                }

                @TestMetadata("pairWithNameClash.kt")
                public void testPairWithNameClash() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/outputValues/pairWithNameClash.kt");
                }

                @TestMetadata("pairWithWhen.kt")
                public void testPairWithWhen() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/outputValues/pairWithWhen.kt");
                }

                @TestMetadata("singleOutputValue.kt")
                public void testSingleOutputValue() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValue.kt");
                }

                @TestMetadata("singleOutputValueWithIf.kt")
                public void testSingleOutputValueWithIf() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIf.kt");
                }

                @TestMetadata("singleOutputValueWithIfElse.kt")
                public void testSingleOutputValueWithIfElse() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIfElse.kt");
                }

                @TestMetadata("singleOutputValueWithWhen.kt")
                public void testSingleOutputValueWithWhen() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhen.kt");
                }

                @TestMetadata("singleOutputValueWithWhenElse.kt")
                public void testSingleOutputValueWithWhenElse() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhenElse.kt");
                }

                @TestMetadata("tooManyOutputValues.kt")
                public void testTooManyOutputValues() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/outputValues/tooManyOutputValues.kt");
                }

                @TestMetadata("tooManyOutputValuesAsList.kt")
                public void testTooManyOutputValuesAsList() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/outputValues/tooManyOutputValuesAsList.kt");
                }

                @TestMetadata("triple.kt")
                public void testTriple() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/outputValues/triple.kt");
                }

                @TestMetadata("usedAndUnusedOutputValues.kt")
                public void testUsedAndUnusedOutputValues() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/outputValues/usedAndUnusedOutputValues.kt");
                }

                @TestMetadata("valAndVarInitalizersWithNonLocalUsages.kt")
                public void testValAndVarInitalizersWithNonLocalUsages() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/outputValues/valAndVarInitalizersWithNonLocalUsages.kt");
                }

                @TestMetadata("valuesUsedInLambdaOnly.kt")
                public void testValuesUsedInLambdaOnly() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/outputValues/valuesUsedInLambdaOnly.kt");
                }

                @TestMetadata("valuesUsedInNestedBlock.kt")
                public void testValuesUsedInNestedBlock() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/outputValues/valuesUsedInNestedBlock.kt");
                }
            }

            @RunWith(JUnit3RunnerWithInners.class)
            @TestMetadata("testData/refactoring/extractFunction/controlFlow/returnTypeCandidates")
            public static class ReturnTypeCandidates extends AbstractExtractionTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
                }

                @TestMetadata("javaAnnotatedNotNull.kt")
                public void testJavaAnnotatedNotNull() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/returnTypeCandidates/javaAnnotatedNotNull.kt");
                }

                @TestMetadata("javaAnnotatedNullable.kt")
                public void testJavaAnnotatedNullable() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/returnTypeCandidates/javaAnnotatedNullable.kt");
                }

                @TestMetadata("javaNoNullabilityAnnotation.kt")
                public void testJavaNoNullabilityAnnotation() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/returnTypeCandidates/javaNoNullabilityAnnotation.kt");
                }
            }

            @RunWith(JUnit3RunnerWithInners.class)
            @TestMetadata("testData/refactoring/extractFunction/controlFlow/throws")
            public static class Throws extends AbstractExtractionTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
                }

                @TestMetadata("breakWithThrow.kt")
                public void testBreakWithThrow() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/throws/breakWithThrow.kt");
                }

                @TestMetadata("continueWithThrow.kt")
                public void testContinueWithThrow() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/throws/continueWithThrow.kt");
                }

                @TestMetadata("evalExpressionWithThrow.kt")
                public void testEvalExpressionWithThrow() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/throws/evalExpressionWithThrow.kt");
                }

                @TestMetadata("implicitThrow.kt")
                public void testImplicitThrow() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/throws/implicitThrow.kt");
                }

                @TestMetadata("nonValuedReturnWithThrow.kt")
                public void testNonValuedReturnWithThrow() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/throws/nonValuedReturnWithThrow.kt");
                }

                @TestMetadata("outputValueWithThrow.kt")
                public void testOutputValueWithThrow() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/throws/outputValueWithThrow.kt");
                }

                @TestMetadata("returnWithThrow.kt")
                public void testReturnWithThrow() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/throws/returnWithThrow.kt");
                }
            }

            @RunWith(JUnit3RunnerWithInners.class)
            @TestMetadata("testData/refactoring/extractFunction/controlFlow/unextractable")
            public static class Unextractable extends AbstractExtractionTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
                }

                @TestMetadata("anonymousObject.kt")
                public void testAnonymousObject() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/unextractable/anonymousObject.kt");
                }

                @TestMetadata("evalExpressionWithReturn.kt")
                public void testEvalExpressionWithReturn() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/unextractable/evalExpressionWithReturn.kt");
                }

                @TestMetadata("jumpsAndReturns.kt")
                public void testJumpsAndReturns() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/unextractable/jumpsAndReturns.kt");
                }

                @TestMetadata("multipleJumps.kt")
                public void testMultipleJumps() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/unextractable/multipleJumps.kt");
                }

                @TestMetadata("multipleReturnsWithDefault.kt")
                public void testMultipleReturnsWithDefault() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/unextractable/multipleReturnsWithDefault.kt");
                }

                @TestMetadata("unmatchedReturnTargets.kt")
                public void testUnmatchedReturnTargets() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/unextractable/unmatchedReturnTargets.kt");
                }

                @TestMetadata("variablesOutOfScope.kt")
                public void testVariablesOutOfScope() throws Exception {
                    runTest("testData/refactoring/extractFunction/controlFlow/unextractable/variablesOutOfScope.kt");
                }
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/extractFunction/defaultContainer")
        public static class DefaultContainer extends AbstractExtractionTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
            }

            @TestMetadata("anonymousObject.kt")
            public void testAnonymousObject() throws Exception {
                runTest("testData/refactoring/extractFunction/defaultContainer/anonymousObject.kt");
            }

            @TestMetadata("classFunction.kt")
            public void testClassFunction() throws Exception {
                runTest("testData/refactoring/extractFunction/defaultContainer/classFunction.kt");
            }

            @TestMetadata("lambda.kt")
            public void testLambda() throws Exception {
                runTest("testData/refactoring/extractFunction/defaultContainer/lambda.kt");
            }

            @TestMetadata("localClass.kt")
            public void testLocalClass() throws Exception {
                runTest("testData/refactoring/extractFunction/defaultContainer/localClass.kt");
            }

            @TestMetadata("localFunction.kt")
            public void testLocalFunction() throws Exception {
                runTest("testData/refactoring/extractFunction/defaultContainer/localFunction.kt");
            }

            @TestMetadata("nestedLambda.kt")
            public void testNestedLambda() throws Exception {
                runTest("testData/refactoring/extractFunction/defaultContainer/nestedLambda.kt");
            }

            @TestMetadata("topLevelFunction.kt")
            public void testTopLevelFunction() throws Exception {
                runTest("testData/refactoring/extractFunction/defaultContainer/topLevelFunction.kt");
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/extractFunction/delegation")
        public static class Delegation extends AbstractExtractionTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
            }

            @TestMetadata("delegationByExpression.kt")
            public void testDelegationByExpression() throws Exception {
                runTest("testData/refactoring/extractFunction/delegation/delegationByExpression.kt");
            }

            @TestMetadata("delegationByExpressionFull.kt")
            public void testDelegationByExpressionFull() throws Exception {
                runTest("testData/refactoring/extractFunction/delegation/delegationByExpressionFull.kt");
            }

            @TestMetadata("delegationBySuperCall.kt")
            public void testDelegationBySuperCall() throws Exception {
                runTest("testData/refactoring/extractFunction/delegation/delegationBySuperCall.kt");
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/extractFunction/duplicates")
        public static class Duplicates extends AbstractExtractionTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
            }

            @TestMetadata("branchingMatch1.kt")
            public void testBranchingMatch1() throws Exception {
                runTest("testData/refactoring/extractFunction/duplicates/branchingMatch1.kt");
            }

            @TestMetadata("branchingMatch2.kt")
            public void testBranchingMatch2() throws Exception {
                runTest("testData/refactoring/extractFunction/duplicates/branchingMatch2.kt");
            }

            @TestMetadata("defaultCF.kt")
            public void testDefaultCF() throws Exception {
                runTest("testData/refactoring/extractFunction/duplicates/defaultCF.kt");
            }

            @TestMetadata("insertAfterDuplicates.kt")
            public void testInsertAfterDuplicates() throws Exception {
                runTest("testData/refactoring/extractFunction/duplicates/insertAfterDuplicates.kt");
            }

            @TestMetadata("insertBeforeDuplicates.kt")
            public void testInsertBeforeDuplicates() throws Exception {
                runTest("testData/refactoring/extractFunction/duplicates/insertBeforeDuplicates.kt");
            }

            @TestMetadata("multipleOutputValuesMatching.kt")
            public void testMultipleOutputValuesMatching() throws Exception {
                runTest("testData/refactoring/extractFunction/duplicates/multipleOutputValuesMatching.kt");
            }

            @TestMetadata("nestedStrongMatch.kt")
            public void testNestedStrongMatch() throws Exception {
                runTest("testData/refactoring/extractFunction/duplicates/nestedStrongMatch.kt");
            }

            @TestMetadata("notNullAssertion.kt")
            public void testNotNullAssertion() throws Exception {
                runTest("testData/refactoring/extractFunction/duplicates/notNullAssertion.kt");
            }

            @TestMetadata("outputValueAndUnitMatching.kt")
            public void testOutputValueAndUnitMatching() throws Exception {
                runTest("testData/refactoring/extractFunction/duplicates/outputValueAndUnitMatching.kt");
            }

            @TestMetadata("outputValueMatching.kt")
            public void testOutputValueMatching() throws Exception {
                runTest("testData/refactoring/extractFunction/duplicates/outputValueMatching.kt");
            }

            @TestMetadata("singleExpression.kt")
            public void testSingleExpression() throws Exception {
                runTest("testData/refactoring/extractFunction/duplicates/singleExpression.kt");
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/extractFunction/initializers")
        public abstract static class Initializers extends AbstractExtractionTest {
            @RunWith(JUnit3RunnerWithInners.class)
            @TestMetadata("testData/refactoring/extractFunction/initializers/accessors")
            public static class Accessors extends AbstractExtractionTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
                }

                @TestMetadata("memberProperty.kt")
                public void testMemberProperty() throws Exception {
                    runTest("testData/refactoring/extractFunction/initializers/accessors/memberProperty.kt");
                }

                @TestMetadata("memberPropertyWithLambda.kt")
                public void testMemberPropertyWithLambda() throws Exception {
                    runTest("testData/refactoring/extractFunction/initializers/accessors/memberPropertyWithLambda.kt");
                }

                @TestMetadata("topLevelProperty.kt")
                public void testTopLevelProperty() throws Exception {
                    runTest("testData/refactoring/extractFunction/initializers/accessors/topLevelProperty.kt");
                }

                @TestMetadata("topLevelPropertyWithLambda.kt")
                public void testTopLevelPropertyWithLambda() throws Exception {
                    runTest("testData/refactoring/extractFunction/initializers/accessors/topLevelPropertyWithLambda.kt");
                }
            }

            @RunWith(JUnit3RunnerWithInners.class)
            @TestMetadata("testData/refactoring/extractFunction/initializers/classes")
            public static class Classes extends AbstractExtractionTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
                }

                @TestMetadata("classInitializer.kt")
                public void testClassInitializer() throws Exception {
                    runTest("testData/refactoring/extractFunction/initializers/classes/classInitializer.kt");
                }

                @TestMetadata("classInitializerWithLambda.kt")
                public void testClassInitializerWithLambda() throws Exception {
                    runTest("testData/refactoring/extractFunction/initializers/classes/classInitializerWithLambda.kt");
                }

                @TestMetadata("classParameters.kt")
                public void testClassParameters() throws Exception {
                    runTest("testData/refactoring/extractFunction/initializers/classes/classParameters.kt");
                }

                @TestMetadata("classParametersWithLambda.kt")
                public void testClassParametersWithLambda() throws Exception {
                    runTest("testData/refactoring/extractFunction/initializers/classes/classParametersWithLambda.kt");
                }
            }

            @RunWith(JUnit3RunnerWithInners.class)
            @TestMetadata("testData/refactoring/extractFunction/initializers/functions")
            public static class Functions extends AbstractExtractionTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
                }

                @TestMetadata("localFunction.kt")
                public void testLocalFunction() throws Exception {
                    runTest("testData/refactoring/extractFunction/initializers/functions/localFunction.kt");
                }

                @TestMetadata("localFunctionParameters.kt")
                public void testLocalFunctionParameters() throws Exception {
                    runTest("testData/refactoring/extractFunction/initializers/functions/localFunctionParameters.kt");
                }

                @TestMetadata("localFunctionParametersWithLambda.kt")
                public void testLocalFunctionParametersWithLambda() throws Exception {
                    runTest("testData/refactoring/extractFunction/initializers/functions/localFunctionParametersWithLambda.kt");
                }

                @TestMetadata("localFunctionWithLambda.kt")
                public void testLocalFunctionWithLambda() throws Exception {
                    runTest("testData/refactoring/extractFunction/initializers/functions/localFunctionWithLambda.kt");
                }

                @TestMetadata("memberFunction.kt")
                public void testMemberFunction() throws Exception {
                    runTest("testData/refactoring/extractFunction/initializers/functions/memberFunction.kt");
                }

                @TestMetadata("memberFunctionParameters.kt")
                public void testMemberFunctionParameters() throws Exception {
                    runTest("testData/refactoring/extractFunction/initializers/functions/memberFunctionParameters.kt");
                }

                @TestMetadata("memberFunctionParametersWithLambda.kt")
                public void testMemberFunctionParametersWithLambda() throws Exception {
                    runTest("testData/refactoring/extractFunction/initializers/functions/memberFunctionParametersWithLambda.kt");
                }

                @TestMetadata("memberFunctionWithLambda.kt")
                public void testMemberFunctionWithLambda() throws Exception {
                    runTest("testData/refactoring/extractFunction/initializers/functions/memberFunctionWithLambda.kt");
                }

                @TestMetadata("topLevelFunction.kt")
                public void testTopLevelFunction() throws Exception {
                    runTest("testData/refactoring/extractFunction/initializers/functions/topLevelFunction.kt");
                }

                @TestMetadata("topLevelFunctionParameters.kt")
                public void testTopLevelFunctionParameters() throws Exception {
                    runTest("testData/refactoring/extractFunction/initializers/functions/topLevelFunctionParameters.kt");
                }

                @TestMetadata("topLevelFunctionParametersWithLambda.kt")
                public void testTopLevelFunctionParametersWithLambda() throws Exception {
                    runTest("testData/refactoring/extractFunction/initializers/functions/topLevelFunctionParametersWithLambda.kt");
                }

                @TestMetadata("topLevelFunctionWithLambda.kt")
                public void testTopLevelFunctionWithLambda() throws Exception {
                    runTest("testData/refactoring/extractFunction/initializers/functions/topLevelFunctionWithLambda.kt");
                }
            }

            @RunWith(JUnit3RunnerWithInners.class)
            @TestMetadata("testData/refactoring/extractFunction/initializers/properties")
            public static class Properties extends AbstractExtractionTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
                }

                @TestMetadata("localProperty.kt")
                public void testLocalProperty() throws Exception {
                    runTest("testData/refactoring/extractFunction/initializers/properties/localProperty.kt");
                }

                @TestMetadata("localPropertyWithLambda.kt")
                public void testLocalPropertyWithLambda() throws Exception {
                    runTest("testData/refactoring/extractFunction/initializers/properties/localPropertyWithLambda.kt");
                }

                @TestMetadata("memberProperty.kt")
                public void testMemberProperty() throws Exception {
                    runTest("testData/refactoring/extractFunction/initializers/properties/memberProperty.kt");
                }

                @TestMetadata("memberPropertyWithLambda.kt")
                public void testMemberPropertyWithLambda() throws Exception {
                    runTest("testData/refactoring/extractFunction/initializers/properties/memberPropertyWithLambda.kt");
                }

                @TestMetadata("multiDeclaration.kt")
                public void testMultiDeclaration() throws Exception {
                    runTest("testData/refactoring/extractFunction/initializers/properties/multiDeclaration.kt");
                }

                @TestMetadata("nestedInMultiDeclaration.kt")
                public void testNestedInMultiDeclaration() throws Exception {
                    runTest("testData/refactoring/extractFunction/initializers/properties/nestedInMultiDeclaration.kt");
                }

                @TestMetadata("topLevelProperty.kt")
                public void testTopLevelProperty() throws Exception {
                    runTest("testData/refactoring/extractFunction/initializers/properties/topLevelProperty.kt");
                }

                @TestMetadata("topLevelPropertyWithLambda.kt")
                public void testTopLevelPropertyWithLambda() throws Exception {
                    runTest("testData/refactoring/extractFunction/initializers/properties/topLevelPropertyWithLambda.kt");
                }
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/extractFunction/multiline")
        public static class Multiline extends AbstractExtractionTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
            }

            @TestMetadata("multilineBinaryExpression.kt")
            public void testMultilineBinaryExpression() throws Exception {
                runTest("testData/refactoring/extractFunction/multiline/multilineBinaryExpression.kt");
            }

            @TestMetadata("multilineBinaryExpressionWithComments.kt")
            public void testMultilineBinaryExpressionWithComments() throws Exception {
                runTest("testData/refactoring/extractFunction/multiline/multilineBinaryExpressionWithComments.kt");
            }

            @TestMetadata("multilineNestedBinaryExpression1.kt")
            public void testMultilineNestedBinaryExpression1() throws Exception {
                runTest("testData/refactoring/extractFunction/multiline/multilineNestedBinaryExpression1.kt");
            }

            @TestMetadata("multilineNestedBinaryExpression2.kt")
            public void testMultilineNestedBinaryExpression2() throws Exception {
                runTest("testData/refactoring/extractFunction/multiline/multilineNestedBinaryExpression2.kt");
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/extractFunction/optIn")
        public static class OptIn extends AbstractExtractionTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
            }

            @TestMetadata("allOptInAnnotations.kt")
            public void testAllOptInAnnotations() throws Exception {
                runTest("testData/refactoring/extractFunction/optIn/allOptInAnnotations.kt");
            }

            @TestMetadata("containerOptInAnnotation.kt")
            public void testContainerOptInAnnotation() throws Exception {
                runTest("testData/refactoring/extractFunction/optIn/containerOptInAnnotation.kt");
            }

            @TestMetadata("filterOptInAnnotations.kt")
            public void testFilterOptInAnnotations() throws Exception {
                runTest("testData/refactoring/extractFunction/optIn/filterOptInAnnotations.kt");
            }

            @TestMetadata("filterPropagatingMarkers.kt")
            public void testFilterPropagatingMarkers() throws Exception {
                runTest("testData/refactoring/extractFunction/optIn/filterPropagatingMarkers.kt");
            }

            @TestMetadata("noExperimentalApi.kt")
            public void testNoExperimentalApi() throws Exception {
                runTest("testData/refactoring/extractFunction/optIn/noExperimentalApi.kt");
            }

            @TestMetadata("singleOptInAnnotation.kt")
            public void testSingleOptInAnnotation() throws Exception {
                runTest("testData/refactoring/extractFunction/optIn/singleOptInAnnotation.kt");
            }

            @TestMetadata("singlePropagatingMarker.kt")
            public void testSinglePropagatingMarker() throws Exception {
                runTest("testData/refactoring/extractFunction/optIn/singlePropagatingMarker.kt");
            }

            @TestMetadata("useExperimental16.kt")
            public void testUseExperimental16() throws Exception {
                runTest("testData/refactoring/extractFunction/optIn/useExperimental16.kt");
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/extractFunction/parameters")
        public abstract static class Parameters extends AbstractExtractionTest {
            @RunWith(JUnit3RunnerWithInners.class)
            @TestMetadata("testData/refactoring/extractFunction/parameters/candidateTypes")
            public static class CandidateTypes extends AbstractExtractionTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
                }

                @TestMetadata("cantLiftAnonymousToSupertype.kt")
                public void testCantLiftAnonymousToSupertype() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/candidateTypes/cantLiftAnonymousToSupertype.kt");
                }

                @TestMetadata("flexibleTypesWithNull.kt")
                public void testFlexibleTypesWithNull() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/candidateTypes/flexibleTypesWithNull.kt");
                }

                @TestMetadata("flexibleTypesWithoutNull.kt")
                public void testFlexibleTypesWithoutNull() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/candidateTypes/flexibleTypesWithoutNull.kt");
                }

                @TestMetadata("liftAnonymousToSupertype1.kt")
                public void testLiftAnonymousToSupertype1() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/candidateTypes/liftAnonymousToSupertype1.kt");
                }

                @TestMetadata("liftAnonymousToSupertype2.kt")
                public void testLiftAnonymousToSupertype2() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/candidateTypes/liftAnonymousToSupertype2.kt");
                }

                @TestMetadata("multipleTypes.kt")
                public void testMultipleTypes() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/candidateTypes/multipleTypes.kt");
                }

                @TestMetadata("multipleTypes2.kt")
                public void testMultipleTypes2() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/candidateTypes/multipleTypes2.kt");
                }

                @TestMetadata("multipleTypes3.kt")
                public void testMultipleTypes3() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/candidateTypes/multipleTypes3.kt");
                }

                @TestMetadata("multipleTypes4.kt")
                public void testMultipleTypes4() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/candidateTypes/multipleTypes4.kt");
                }

                @TestMetadata("mutablyFlexibleType.kt")
                public void testMutablyFlexibleType() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/candidateTypes/mutablyFlexibleType.kt");
                }

                @TestMetadata("nonNullableTypes.kt")
                public void testNonNullableTypes() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/candidateTypes/nonNullableTypes.kt");
                }

                @TestMetadata("nullableTypes.kt")
                public void testNullableTypes() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/candidateTypes/nullableTypes.kt");
                }

                @TestMetadata("receiverCandidateTypes.kt")
                public void testReceiverCandidateTypes() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/candidateTypes/receiverCandidateTypes.kt");
                }

                @TestMetadata("typeHierarchy1.kt")
                public void testTypeHierarchy1() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy1.kt");
                }

                @TestMetadata("typeHierarchy2.kt")
                public void testTypeHierarchy2() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy2.kt");
                }

                @TestMetadata("typeHierarchy3.kt")
                public void testTypeHierarchy3() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy3.kt");
                }

                @TestMetadata("typeHierarchy4.kt")
                public void testTypeHierarchy4() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/candidateTypes/typeHierarchy4.kt");
                }
            }

            @RunWith(JUnit3RunnerWithInners.class)
            @TestMetadata("testData/refactoring/extractFunction/parameters/capturedFunctions")
            public static class CapturedFunctions extends AbstractExtractionTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
                }

                @TestMetadata("deeplyLocalFun.kt")
                public void testDeeplyLocalFun() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/capturedFunctions/deeplyLocalFun.kt");
                }

                @TestMetadata("localExtensionFun.kt")
                public void testLocalExtensionFun() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/capturedFunctions/localExtensionFun.kt");
                }

                @TestMetadata("localExtensionFunChainedCalls.kt")
                public void testLocalExtensionFunChainedCalls() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/capturedFunctions/localExtensionFunChainedCalls.kt");
                }

                @TestMetadata("localExtensionFunInfixCall.kt")
                public void testLocalExtensionFunInfixCall() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/capturedFunctions/localExtensionFunInfixCall.kt");
                }

                @TestMetadata("localFun.kt")
                public void testLocalFun() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/capturedFunctions/localFun.kt");
                }
            }

            @RunWith(JUnit3RunnerWithInners.class)
            @TestMetadata("testData/refactoring/extractFunction/parameters/extractSuper")
            public static class ExtractSuper extends AbstractExtractionTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
                }

                @TestMetadata("labeledSuperPropertyCall.kt")
                public void testLabeledSuperPropertyCall() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/extractSuper/labeledSuperPropertyCall.kt");
                }

                @TestMetadata("superFunctionCall.kt")
                public void testSuperFunctionCall() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/extractSuper/superFunctionCall.kt");
                }

                @TestMetadata("superLabeledFunctionCall.kt")
                public void testSuperLabeledFunctionCall() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/extractSuper/superLabeledFunctionCall.kt");
                }

                @TestMetadata("superPropertyCall.kt")
                public void testSuperPropertyCall() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/extractSuper/superPropertyCall.kt");
                }
            }

            @RunWith(JUnit3RunnerWithInners.class)
            @TestMetadata("testData/refactoring/extractFunction/parameters/extractThis")
            public static class ExtractThis extends AbstractExtractionTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
                }

                @TestMetadata("explicitLabeledThisInMember.kt")
                public void testExplicitLabeledThisInMember() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/extractThis/explicitLabeledThisInMember.kt");
                }

                @TestMetadata("explicitThisInExtension.kt")
                public void testExplicitThisInExtension() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/extractThis/explicitThisInExtension.kt");
                }

                @TestMetadata("explicitThisInMember.kt")
                public void testExplicitThisInMember() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/extractThis/explicitThisInMember.kt");
                }

                @TestMetadata("explicitThisWithSmartCast.kt")
                public void testExplicitThisWithSmartCast() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/extractThis/explicitThisWithSmartCast.kt");
                }

                @TestMetadata("implicitAndExplicitLabeledThisInMember.kt")
                public void testImplicitAndExplicitLabeledThisInMember() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitLabeledThisInMember.kt");
                }

                @TestMetadata("implicitAndExplicitThisInExtension.kt")
                public void testImplicitAndExplicitThisInExtension() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitThisInExtension.kt");
                }

                @TestMetadata("implicitThisInExtension.kt")
                public void testImplicitThisInExtension() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/extractThis/implicitThisInExtension.kt");
                }

                @TestMetadata("implicitThisInMember.kt")
                public void testImplicitThisInMember() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/extractThis/implicitThisInMember.kt");
                }

                @TestMetadata("implicitThisWithSmartCast.kt")
                public void testImplicitThisWithSmartCast() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/extractThis/implicitThisWithSmartCast.kt");
                }

                @TestMetadata("javaSyntheticProperty.kt")
                public void testJavaSyntheticProperty() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/extractThis/javaSyntheticProperty.kt");
                }

                @TestMetadata("javaSyntheticPropertyWithDelegation.kt")
                public void testJavaSyntheticPropertyWithDelegation() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/extractThis/javaSyntheticPropertyWithDelegation.kt");
                }

                @TestMetadata("javaSyntheticPropertyWithOverride.kt")
                public void testJavaSyntheticPropertyWithOverride() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/extractThis/javaSyntheticPropertyWithOverride.kt");
                }

                @TestMetadata("missingReceiver.kt")
                public void testMissingReceiver() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/extractThis/missingReceiver.kt");
                }

                @TestMetadata("paramAsExplicitInvoke.kt")
                public void testParamAsExplicitInvoke() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/extractThis/paramAsExplicitInvoke.kt");
                }

                @TestMetadata("paramWithExtensionInvoke.kt")
                public void testParamWithExtensionInvoke() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/extractThis/paramWithExtensionInvoke.kt");
                }

                @TestMetadata("propertyWithExplicitInvoke.kt")
                public void testPropertyWithExplicitInvoke() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/extractThis/propertyWithExplicitInvoke.kt");
                }

                @TestMetadata("propertyWithImplicitInvoke.kt")
                public void testPropertyWithImplicitInvoke() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/extractThis/propertyWithImplicitInvoke.kt");
                }

                @TestMetadata("qualifiedThis.kt")
                public void testQualifiedThis() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/extractThis/qualifiedThis.kt");
                }

                @TestMetadata("qualifiedThisAsArgument.kt")
                public void testQualifiedThisAsArgument() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/extractThis/qualifiedThisAsArgument.kt");
                }
            }

            @RunWith(JUnit3RunnerWithInners.class)
            @TestMetadata("testData/refactoring/extractFunction/parameters/it")
            public static class It extends AbstractExtractionTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
                }

                @TestMetadata("innerIt.kt")
                public void testInnerIt() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/it/innerIt.kt");
                }

                @TestMetadata("lambdaWithIt.kt")
                public void testLambdaWithIt() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/it/lambdaWithIt.kt");
                }

                @TestMetadata("outerIt.kt")
                public void testOuterIt() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/it/outerIt.kt");
                }

                @TestMetadata("simpleIt.kt")
                public void testSimpleIt() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/it/simpleIt.kt");
                }
            }

            @RunWith(JUnit3RunnerWithInners.class)
            @TestMetadata("testData/refactoring/extractFunction/parameters/misc")
            public static class Misc extends AbstractExtractionTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
                }

                @TestMetadata("addPrefixToBackticks.kt")
                public void testAddPrefixToBackticks() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/misc/addPrefixToBackticks.kt");
                }

                @TestMetadata("classObject.kt")
                public void testClassObject() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/misc/classObject.kt");
                }

                @TestMetadata("extensionLambda.kt")
                public void testExtensionLambda() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/misc/extensionLambda.kt");
                }

                @TestMetadata("extensionLambdaAsParameter.kt")
                public void testExtensionLambdaAsParameter() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/misc/extensionLambdaAsParameter.kt");
                }

                @TestMetadata("idWithBackticks.kt")
                public void testIdWithBackticks() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/misc/idWithBackticks.kt");
                }

                @TestMetadata("idWithRequiredBackticks.kt")
                public void testIdWithRequiredBackticks() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/misc/idWithRequiredBackticks.kt");
                }

                @TestMetadata("innerClassObject.kt")
                public void testInnerClassObject() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/misc/innerClassObject.kt");
                }

                @TestMetadata("kt5001.kt")
                public void testKt5001() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/misc/kt5001.kt");
                }

                @TestMetadata("multiDeclaration.kt")
                public void testMultiDeclaration() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/misc/multiDeclaration.kt");
                }

                @TestMetadata("multipleOccurrences.kt")
                public void testMultipleOccurrences() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/misc/multipleOccurrences.kt");
                }

                @TestMetadata("namedArguments.kt")
                public void testNamedArguments() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/misc/namedArguments.kt");
                }

                @TestMetadata("qualifiedAnnotation.kt")
                public void testQualifiedAnnotation() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/misc/qualifiedAnnotation.kt");
                }

                @TestMetadata("qualifiedClassObject.kt")
                public void testQualifiedClassObject() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/misc/qualifiedClassObject.kt");
                }

                @TestMetadata("qualifiedEnum.kt")
                public void testQualifiedEnum() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/misc/qualifiedEnum.kt");
                }

                @TestMetadata("qualifiedObject.kt")
                public void testQualifiedObject() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/misc/qualifiedObject.kt");
                }

                @TestMetadata("qualifiedPackage.kt")
                public void testQualifiedPackage() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/misc/qualifiedPackage.kt");
                }

                @TestMetadata("qualifiedTypeArg.kt")
                public void testQualifiedTypeArg() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/misc/qualifiedTypeArg.kt");
                }

                @TestMetadata("qualifiedTypeInValueArg.kt")
                public void testQualifiedTypeInValueArg() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/misc/qualifiedTypeInValueArg.kt");
                }

                @TestMetadata("qualifiedTypeRef.kt")
                public void testQualifiedTypeRef() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/misc/qualifiedTypeRef.kt");
                }

                @TestMetadata("reducedParameterList.kt")
                public void testReducedParameterList() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/misc/reducedParameterList.kt");
                }

                @TestMetadata("replaceWithBackticks.kt")
                public void testReplaceWithBackticks() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/misc/replaceWithBackticks.kt");
                }

                @TestMetadata("replaceWithBackticks2.kt")
                public void testReplaceWithBackticks2() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/misc/replaceWithBackticks2.kt");
                }

                @TestMetadata("thisInObject.kt")
                public void testThisInObject() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/misc/thisInObject.kt");
                }

                @TestMetadata("typeRef.kt")
                public void testTypeRef() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/misc/typeRef.kt");
                }

                @TestMetadata("usagesInCallArgs.kt")
                public void testUsagesInCallArgs() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/misc/usagesInCallArgs.kt");
                }

                @TestMetadata("variableAsFunction.kt")
                public void testVariableAsFunction() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/misc/variableAsFunction.kt");
                }
            }

            @RunWith(JUnit3RunnerWithInners.class)
            @TestMetadata("testData/refactoring/extractFunction/parameters/nonDenotableTypes")
            public static class NonDenotableTypes extends AbstractExtractionTest {
                private void runTest(String testDataFilePath) throws Exception {
                    KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
                }

                @TestMetadata("anonymousObject.kt")
                public void testAnonymousObject() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/nonDenotableTypes/anonymousObject.kt");
                }

                @TestMetadata("anonymousObjectWithCall.kt")
                public void testAnonymousObjectWithCall() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/nonDenotableTypes/anonymousObjectWithCall.kt");
                }

                @TestMetadata("localClass.kt")
                public void testLocalClass() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/nonDenotableTypes/localClass.kt");
                }

                @TestMetadata("localClassWithSuperclass.kt")
                public void testLocalClassWithSuperclass() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/nonDenotableTypes/localClassWithSuperclass.kt");
                }

                @TestMetadata("localClassWithSuperclassParameter.kt")
                public void testLocalClassWithSuperclassParameter() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/nonDenotableTypes/localClassWithSuperclassParameter.kt");
                }

                @TestMetadata("localClassWithSuperclassParameterInLocalFun.kt")
                public void testLocalClassWithSuperclassParameterInLocalFun() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/nonDenotableTypes/localClassWithSuperclassParameterInLocalFun.kt");
                }

                @TestMetadata("localClassWithSuperclassParameterNoApproximation.kt")
                public void testLocalClassWithSuperclassParameterNoApproximation() throws Exception {
                    runTest("testData/refactoring/extractFunction/parameters/nonDenotableTypes/localClassWithSuperclassParameterNoApproximation.kt");
                }
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/extractFunction/script")
        public static class Script extends AbstractExtractionTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
            }

            @TestMetadata("NotExpression.kts")
            public void testNotExpression() throws Exception {
                runTest("testData/refactoring/extractFunction/script/NotExpression.kts");
            }

            @TestMetadata("TopLevelExpression.kts")
            public void testTopLevelExpression() throws Exception {
                runTest("testData/refactoring/extractFunction/script/TopLevelExpression.kts");
            }

            @TestMetadata("topLevelFunction.kts")
            public void testTopLevelFunction() throws Exception {
                runTest("testData/refactoring/extractFunction/script/topLevelFunction.kts");
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/extractFunction/stringTemplates")
        public static class StringTemplates extends AbstractExtractionTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
            }

            @TestMetadata("brokenEntryWithBlockExpr.kt")
            public void testBrokenEntryWithBlockExpr() throws Exception {
                runTest("testData/refactoring/extractFunction/stringTemplates/brokenEntryWithBlockExpr.kt");
            }

            @TestMetadata("brokenEntryWithExpr.kt")
            public void testBrokenEntryWithExpr() throws Exception {
                runTest("testData/refactoring/extractFunction/stringTemplates/brokenEntryWithExpr.kt");
            }

            @TestMetadata("brokenEscapeEntry.kt")
            public void testBrokenEscapeEntry() throws Exception {
                runTest("testData/refactoring/extractFunction/stringTemplates/brokenEscapeEntry.kt");
            }

            @TestMetadata("extractFalse.kt")
            public void testExtractFalse() throws Exception {
                runTest("testData/refactoring/extractFunction/stringTemplates/extractFalse.kt");
            }

            @TestMetadata("extractIntegerLiteral.kt")
            public void testExtractIntegerLiteral() throws Exception {
                runTest("testData/refactoring/extractFunction/stringTemplates/extractIntegerLiteral.kt");
            }

            @TestMetadata("extractTrue.kt")
            public void testExtractTrue() throws Exception {
                runTest("testData/refactoring/extractFunction/stringTemplates/extractTrue.kt");
            }

            @TestMetadata("fullContent.kt")
            public void testFullContent() throws Exception {
                runTest("testData/refactoring/extractFunction/stringTemplates/fullContent.kt");
            }

            @TestMetadata("fullEntryWithBlockExpr.kt")
            public void testFullEntryWithBlockExpr() throws Exception {
                runTest("testData/refactoring/extractFunction/stringTemplates/fullEntryWithBlockExpr.kt");
            }

            @TestMetadata("fullEntryWithSimpleName.kt")
            public void testFullEntryWithSimpleName() throws Exception {
                runTest("testData/refactoring/extractFunction/stringTemplates/fullEntryWithSimpleName.kt");
            }

            @TestMetadata("multipleEntriesWithPrefix.kt")
            public void testMultipleEntriesWithPrefix() throws Exception {
                runTest("testData/refactoring/extractFunction/stringTemplates/multipleEntriesWithPrefix.kt");
            }

            @TestMetadata("multipleEntriesWithSubstring.kt")
            public void testMultipleEntriesWithSubstring() throws Exception {
                runTest("testData/refactoring/extractFunction/stringTemplates/multipleEntriesWithSubstring.kt");
            }

            @TestMetadata("multipleEntriesWithSuffix.kt")
            public void testMultipleEntriesWithSuffix() throws Exception {
                runTest("testData/refactoring/extractFunction/stringTemplates/multipleEntriesWithSuffix.kt");
            }

            @TestMetadata("rawTemplateWithSubstring.kt")
            public void testRawTemplateWithSubstring() throws Exception {
                runTest("testData/refactoring/extractFunction/stringTemplates/rawTemplateWithSubstring.kt");
            }

            @TestMetadata("singleEntryPrefix.kt")
            public void testSingleEntryPrefix() throws Exception {
                runTest("testData/refactoring/extractFunction/stringTemplates/singleEntryPrefix.kt");
            }

            @TestMetadata("singleEntrySubstring.kt")
            public void testSingleEntrySubstring() throws Exception {
                runTest("testData/refactoring/extractFunction/stringTemplates/singleEntrySubstring.kt");
            }

            @TestMetadata("singleEntrySuffix.kt")
            public void testSingleEntrySuffix() throws Exception {
                runTest("testData/refactoring/extractFunction/stringTemplates/singleEntrySuffix.kt");
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/extractFunction/typeParameters")
        public static class TypeParameters extends AbstractExtractionTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
            }

            @TestMetadata("localClassInBound.kt")
            public void testLocalClassInBound() throws Exception {
                runTest("testData/refactoring/extractFunction/typeParameters/localClassInBound.kt");
            }

            @TestMetadata("localClassInTypeConstraint.kt")
            public void testLocalClassInTypeConstraint() throws Exception {
                runTest("testData/refactoring/extractFunction/typeParameters/localClassInTypeConstraint.kt");
            }

            @TestMetadata("noVarianceInFun.kt")
            public void testNoVarianceInFun() throws Exception {
                runTest("testData/refactoring/extractFunction/typeParameters/noVarianceInFun.kt");
            }

            @TestMetadata("simpleTypeParameter.kt")
            public void testSimpleTypeParameter() throws Exception {
                runTest("testData/refactoring/extractFunction/typeParameters/simpleTypeParameter.kt");
            }

            @TestMetadata("simpleTypeParameterWithConstraint.kt")
            public void testSimpleTypeParameterWithConstraint() throws Exception {
                runTest("testData/refactoring/extractFunction/typeParameters/simpleTypeParameterWithConstraint.kt");
            }

            @TestMetadata("typeParamInArgument.kt")
            public void testTypeParamInArgument() throws Exception {
                runTest("testData/refactoring/extractFunction/typeParameters/typeParamInArgument.kt");
            }

            @TestMetadata("typeParameterNotResolvableInTargetScope.kt")
            public void testTypeParameterNotResolvableInTargetScope() throws Exception {
                runTest("testData/refactoring/extractFunction/typeParameters/typeParameterNotResolvableInTargetScope.kt");
            }

            @TestMetadata("typeParameterRef.kt")
            public void testTypeParameterRef() throws Exception {
                runTest("testData/refactoring/extractFunction/typeParameters/typeParameterRef.kt");
            }

            @TestMetadata("typeParameterRefCanOmit.kt")
            public void testTypeParameterRefCanOmit() throws Exception {
                runTest("testData/refactoring/extractFunction/typeParameters/typeParameterRefCanOmit.kt");
            }

            @TestMetadata("typeParameterResolvableInTargetScope.kt")
            public void testTypeParameterResolvableInTargetScope() throws Exception {
                runTest("testData/refactoring/extractFunction/typeParameters/typeParameterResolvableInTargetScope.kt");
            }

            @TestMetadata("typeParametersAndConstraintsCombined1.kt")
            public void testTypeParametersAndConstraintsCombined1() throws Exception {
                runTest("testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined1.kt");
            }

            @TestMetadata("typeParametersAndConstraintsCombined2.kt")
            public void testTypeParametersAndConstraintsCombined2() throws Exception {
                runTest("testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined2.kt");
            }

            @TestMetadata("typeParametersAndConstraintsCombined3.kt")
            public void testTypeParametersAndConstraintsCombined3() throws Exception {
                runTest("testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined3.kt");
            }

            @TestMetadata("typeParametersCombined1.kt")
            public void testTypeParametersCombined1() throws Exception {
                runTest("testData/refactoring/extractFunction/typeParameters/typeParametersCombined1.kt");
            }

            @TestMetadata("typeParametersCombined2.kt")
            public void testTypeParametersCombined2() throws Exception {
                runTest("testData/refactoring/extractFunction/typeParameters/typeParametersCombined2.kt");
            }

            @TestMetadata("typeParametersCombined3.kt")
            public void testTypeParametersCombined3() throws Exception {
                runTest("testData/refactoring/extractFunction/typeParameters/typeParametersCombined3.kt");
            }

            @TestMetadata("typeParametersCombinedAndThis.kt")
            public void testTypeParametersCombinedAndThis() throws Exception {
                runTest("testData/refactoring/extractFunction/typeParameters/typeParametersCombinedAndThis.kt");
            }
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/refactoring/introduceProperty")
    public abstract static class IntroduceProperty extends AbstractExtractionTest {
        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/introduceProperty/script")
        public static class Script extends AbstractExtractionTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doIntroducePropertyTest, this, testDataFilePath);
            }

            @TestMetadata("ClassInScript.kts")
            public void testClassInScript() throws Exception {
                runTest("testData/refactoring/introduceProperty/script/ClassInScript.kts");
            }

            @TestMetadata("ExpressionPart.kts")
            public void testExpressionPart() throws Exception {
                runTest("testData/refactoring/introduceProperty/script/ExpressionPart.kts");
            }

            @TestMetadata("TopLevelExpression.kts")
            public void testTopLevelExpression() throws Exception {
                runTest("testData/refactoring/introduceProperty/script/TopLevelExpression.kts");
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/introduceProperty/stringTemplates")
        public static class StringTemplates extends AbstractExtractionTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doIntroducePropertyTest, this, testDataFilePath);
            }

            @TestMetadata("brokenEntryWithBlockExpr.kt")
            public void testBrokenEntryWithBlockExpr() throws Exception {
                runTest("testData/refactoring/introduceProperty/stringTemplates/brokenEntryWithBlockExpr.kt");
            }

            @TestMetadata("brokenEntryWithExpr.kt")
            public void testBrokenEntryWithExpr() throws Exception {
                runTest("testData/refactoring/introduceProperty/stringTemplates/brokenEntryWithExpr.kt");
            }

            @TestMetadata("brokenEscapeEntry.kt")
            public void testBrokenEscapeEntry() throws Exception {
                runTest("testData/refactoring/introduceProperty/stringTemplates/brokenEscapeEntry.kt");
            }

            @TestMetadata("extractFalse.kt")
            public void testExtractFalse() throws Exception {
                runTest("testData/refactoring/introduceProperty/stringTemplates/extractFalse.kt");
            }

            @TestMetadata("extractIntegerLiteral.kt")
            public void testExtractIntegerLiteral() throws Exception {
                runTest("testData/refactoring/introduceProperty/stringTemplates/extractIntegerLiteral.kt");
            }

            @TestMetadata("extractTrue.kt")
            public void testExtractTrue() throws Exception {
                runTest("testData/refactoring/introduceProperty/stringTemplates/extractTrue.kt");
            }

            @TestMetadata("fullContent.kt")
            public void testFullContent() throws Exception {
                runTest("testData/refactoring/introduceProperty/stringTemplates/fullContent.kt");
            }

            @TestMetadata("fullEntryWithBlockExpr.kt")
            public void testFullEntryWithBlockExpr() throws Exception {
                runTest("testData/refactoring/introduceProperty/stringTemplates/fullEntryWithBlockExpr.kt");
            }

            @TestMetadata("fullEntryWithSimpleName.kt")
            public void testFullEntryWithSimpleName() throws Exception {
                runTest("testData/refactoring/introduceProperty/stringTemplates/fullEntryWithSimpleName.kt");
            }

            @TestMetadata("multipleEntriesWithPrefix.kt")
            public void testMultipleEntriesWithPrefix() throws Exception {
                runTest("testData/refactoring/introduceProperty/stringTemplates/multipleEntriesWithPrefix.kt");
            }

            @TestMetadata("multipleEntriesWithSubstring.kt")
            public void testMultipleEntriesWithSubstring() throws Exception {
                runTest("testData/refactoring/introduceProperty/stringTemplates/multipleEntriesWithSubstring.kt");
            }

            @TestMetadata("multipleEntriesWithSuffix.kt")
            public void testMultipleEntriesWithSuffix() throws Exception {
                runTest("testData/refactoring/introduceProperty/stringTemplates/multipleEntriesWithSuffix.kt");
            }

            @TestMetadata("rawTemplateWithSubstring.kt")
            public void testRawTemplateWithSubstring() throws Exception {
                runTest("testData/refactoring/introduceProperty/stringTemplates/rawTemplateWithSubstring.kt");
            }

            @TestMetadata("singleEntryPrefix.kt")
            public void testSingleEntryPrefix() throws Exception {
                runTest("testData/refactoring/introduceProperty/stringTemplates/singleEntryPrefix.kt");
            }

            @TestMetadata("singleEntrySubstring.kt")
            public void testSingleEntrySubstring() throws Exception {
                runTest("testData/refactoring/introduceProperty/stringTemplates/singleEntrySubstring.kt");
            }

            @TestMetadata("singleEntrySuffix.kt")
            public void testSingleEntrySuffix() throws Exception {
                runTest("testData/refactoring/introduceProperty/stringTemplates/singleEntrySuffix.kt");
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/introduceProperty")
        public static class Uncategorized extends AbstractExtractionTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doIntroducePropertyTest, this, testDataFilePath);
            }

            @TestMetadata("conflictWithParentClass.kt")
            public void testConflictWithParentClass() throws Exception {
                runTest("testData/refactoring/introduceProperty/conflictWithParentClass.kt");
            }

            @TestMetadata("extractExtensionWithInitializer.kt")
            public void testExtractExtensionWithInitializer() throws Exception {
                runTest("testData/refactoring/introduceProperty/extractExtensionWithInitializer.kt");
            }

            @TestMetadata("extractFromDefaultValueInConstructor.kt")
            public void testExtractFromDefaultValueInConstructor() throws Exception {
                runTest("testData/refactoring/introduceProperty/extractFromDefaultValueInConstructor.kt");
            }

            @TestMetadata("extractFromDefaultValueInFun.kt")
            public void testExtractFromDefaultValueInFun() throws Exception {
                runTest("testData/refactoring/introduceProperty/extractFromDefaultValueInFun.kt");
            }

            @TestMetadata("extractLazyExtension.kt")
            public void testExtractLazyExtension() throws Exception {
                runTest("testData/refactoring/introduceProperty/extractLazyExtension.kt");
            }

            @TestMetadata("extractLazyMultipleExpressions.kt")
            public void testExtractLazyMultipleExpressions() throws Exception {
                runTest("testData/refactoring/introduceProperty/extractLazyMultipleExpressions.kt");
            }

            @TestMetadata("extractLazyToClass.kt")
            public void testExtractLazyToClass() throws Exception {
                runTest("testData/refactoring/introduceProperty/extractLazyToClass.kt");
            }

            @TestMetadata("extractLazyToFile.kt")
            public void testExtractLazyToFile() throws Exception {
                runTest("testData/refactoring/introduceProperty/extractLazyToFile.kt");
            }

            @TestMetadata("extractLazyToInterface.kt")
            public void testExtractLazyToInterface() throws Exception {
                runTest("testData/refactoring/introduceProperty/extractLazyToInterface.kt");
            }

            @TestMetadata("extractLazyWithBlock.kt")
            public void testExtractLazyWithBlock() throws Exception {
                runTest("testData/refactoring/introduceProperty/extractLazyWithBlock.kt");
            }

            @TestMetadata("extractLazyWithCallSiteReturn.kt")
            public void testExtractLazyWithCallSiteReturn() throws Exception {
                runTest("testData/refactoring/introduceProperty/extractLazyWithCallSiteReturn.kt");
            }

            @TestMetadata("extractToClassWithNameClash.kt")
            public void testExtractToClassWithNameClash() throws Exception {
                runTest("testData/refactoring/introduceProperty/extractToClassWithNameClash.kt");
            }

            @TestMetadata("extractToClassWithNameClashAndAnonymousInitializer.kt")
            public void testExtractToClassWithNameClashAndAnonymousInitializer() throws Exception {
                runTest("testData/refactoring/introduceProperty/extractToClassWithNameClashAndAnonymousInitializer.kt");
            }

            @TestMetadata("extractToFileWithNameClash.kt")
            public void testExtractToFileWithNameClash() throws Exception {
                runTest("testData/refactoring/introduceProperty/extractToFileWithNameClash.kt");
            }

            @TestMetadata("extractToFunction.kt")
            public void testExtractToFunction() throws Exception {
                runTest("testData/refactoring/introduceProperty/extractToFunction.kt");
            }

            @TestMetadata("extractUnit.kt")
            public void testExtractUnit() throws Exception {
                runTest("testData/refactoring/introduceProperty/extractUnit.kt");
            }

            @TestMetadata("extractWithGetterMultipleExpressions.kt")
            public void testExtractWithGetterMultipleExpressions() throws Exception {
                runTest("testData/refactoring/introduceProperty/extractWithGetterMultipleExpressions.kt");
            }

            @TestMetadata("extractWithGetterToClass.kt")
            public void testExtractWithGetterToClass() throws Exception {
                runTest("testData/refactoring/introduceProperty/extractWithGetterToClass.kt");
            }

            @TestMetadata("extractWithGetterToFile.kt")
            public void testExtractWithGetterToFile() throws Exception {
                runTest("testData/refactoring/introduceProperty/extractWithGetterToFile.kt");
            }

            @TestMetadata("extractWithGetterToInterface.kt")
            public void testExtractWithGetterToInterface() throws Exception {
                runTest("testData/refactoring/introduceProperty/extractWithGetterToInterface.kt");
            }

            @TestMetadata("extractWithInitializerAndBlock.kt")
            public void testExtractWithInitializerAndBlock() throws Exception {
                runTest("testData/refactoring/introduceProperty/extractWithInitializerAndBlock.kt");
            }

            @TestMetadata("extractWithInitializerAndCallSiteReturn.kt")
            public void testExtractWithInitializerAndCallSiteReturn() throws Exception {
                runTest("testData/refactoring/introduceProperty/extractWithInitializerAndCallSiteReturn.kt");
            }

            @TestMetadata("extractWithInitializerAndSingleElementBlock.kt")
            public void testExtractWithInitializerAndSingleElementBlock() throws Exception {
                runTest("testData/refactoring/introduceProperty/extractWithInitializerAndSingleElementBlock.kt");
            }

            @TestMetadata("extractWithInitializerMultipleExpressions.kt")
            public void testExtractWithInitializerMultipleExpressions() throws Exception {
                runTest("testData/refactoring/introduceProperty/extractWithInitializerMultipleExpressions.kt");
            }

            @TestMetadata("extractWithInitializerToClass.kt")
            public void testExtractWithInitializerToClass() throws Exception {
                runTest("testData/refactoring/introduceProperty/extractWithInitializerToClass.kt");
            }

            @TestMetadata("extractWithInitializerToFile.kt")
            public void testExtractWithInitializerToFile() throws Exception {
                runTest("testData/refactoring/introduceProperty/extractWithInitializerToFile.kt");
            }

            @TestMetadata("extractWithInitializerToInterface.kt")
            public void testExtractWithInitializerToInterface() throws Exception {
                runTest("testData/refactoring/introduceProperty/extractWithInitializerToInterface.kt");
            }

            @TestMetadata("extractWithParams.kt")
            public void testExtractWithParams() throws Exception {
                runTest("testData/refactoring/introduceProperty/extractWithParams.kt");
            }

            @TestMetadata("kt21530.kt")
            public void testKt21530() throws Exception {
                runTest("testData/refactoring/introduceProperty/kt21530.kt");
            }

            @TestMetadata("kt24615.kt")
            public void testKt24615() throws Exception {
                runTest("testData/refactoring/introduceProperty/kt24615.kt");
            }

            @TestMetadata("primaryConstructorParameterReference.kt")
            public void testPrimaryConstructorParameterReference() throws Exception {
                runTest("testData/refactoring/introduceProperty/primaryConstructorParameterReference.kt");
            }

            @TestMetadata("replaceDuplicates.kt")
            public void testReplaceDuplicates() throws Exception {
                runTest("testData/refactoring/introduceProperty/replaceDuplicates.kt");
            }

            @TestMetadata("syntaxErrors.kt")
            public void testSyntaxErrors() throws Exception {
                runTest("testData/refactoring/introduceProperty/syntaxErrors.kt");
            }

            @TestMetadata("typeParameterNotResolvableInTargetScope.kt")
            public void testTypeParameterNotResolvableInTargetScope() throws Exception {
                runTest("testData/refactoring/introduceProperty/typeParameterNotResolvableInTargetScope.kt");
            }

            @TestMetadata("typeParameterResolvableInTargetScope.kt")
            public void testTypeParameterResolvableInTargetScope() throws Exception {
                runTest("testData/refactoring/introduceProperty/typeParameterResolvableInTargetScope.kt");
            }
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/refactoring/introduceParameter")
    public abstract static class IntroduceParameter extends AbstractExtractionTest {
        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/introduceParameter/multiline")
        public static class Multiline extends AbstractExtractionTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doIntroduceSimpleParameterTest, this, testDataFilePath);
            }

            @TestMetadata("multilineBinaryExpression.kt")
            public void testMultilineBinaryExpression() throws Exception {
                runTest("testData/refactoring/introduceParameter/multiline/multilineBinaryExpression.kt");
            }

            @TestMetadata("multilineBinaryExpressionWithComments.kt")
            public void testMultilineBinaryExpressionWithComments() throws Exception {
                runTest("testData/refactoring/introduceParameter/multiline/multilineBinaryExpressionWithComments.kt");
            }

            @TestMetadata("multilineNestedBinaryExpression1.kt")
            public void testMultilineNestedBinaryExpression1() throws Exception {
                runTest("testData/refactoring/introduceParameter/multiline/multilineNestedBinaryExpression1.kt");
            }

            @TestMetadata("multilineNestedBinaryExpression2.kt")
            public void testMultilineNestedBinaryExpression2() throws Exception {
                runTest("testData/refactoring/introduceParameter/multiline/multilineNestedBinaryExpression2.kt");
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/introduceParameter/script")
        public static class Script extends AbstractExtractionTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doIntroduceSimpleParameterTest, this, testDataFilePath);
            }

            @TestMetadata("ExpressionPart.kts")
            public void testExpressionPart() throws Exception {
                runTest("testData/refactoring/introduceParameter/script/ExpressionPart.kts");
            }

            @TestMetadata("FunInScript.kts")
            public void testFunInScript() throws Exception {
                runTest("testData/refactoring/introduceParameter/script/FunInScript.kts");
            }

            @TestMetadata("TopLevelExpression.kts")
            public void testTopLevelExpression() throws Exception {
                runTest("testData/refactoring/introduceParameter/script/TopLevelExpression.kts");
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/introduceParameter/stringTemplates")
        public static class StringTemplates extends AbstractExtractionTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doIntroduceSimpleParameterTest, this, testDataFilePath);
            }

            @TestMetadata("brokenEntryWithBlockExpr.kt")
            public void testBrokenEntryWithBlockExpr() throws Exception {
                runTest("testData/refactoring/introduceParameter/stringTemplates/brokenEntryWithBlockExpr.kt");
            }

            @TestMetadata("brokenEntryWithExpr.kt")
            public void testBrokenEntryWithExpr() throws Exception {
                runTest("testData/refactoring/introduceParameter/stringTemplates/brokenEntryWithExpr.kt");
            }

            @TestMetadata("brokenEscapeEntry.kt")
            public void testBrokenEscapeEntry() throws Exception {
                runTest("testData/refactoring/introduceParameter/stringTemplates/brokenEscapeEntry.kt");
            }

            @TestMetadata("extractFalse.kt")
            public void testExtractFalse() throws Exception {
                runTest("testData/refactoring/introduceParameter/stringTemplates/extractFalse.kt");
            }

            @TestMetadata("extractIntegerLiteral.kt")
            public void testExtractIntegerLiteral() throws Exception {
                runTest("testData/refactoring/introduceParameter/stringTemplates/extractIntegerLiteral.kt");
            }

            @TestMetadata("extractTrue.kt")
            public void testExtractTrue() throws Exception {
                runTest("testData/refactoring/introduceParameter/stringTemplates/extractTrue.kt");
            }

            @TestMetadata("fullContent.kt")
            public void testFullContent() throws Exception {
                runTest("testData/refactoring/introduceParameter/stringTemplates/fullContent.kt");
            }

            @TestMetadata("fullEntryWithBlockExpr.kt")
            public void testFullEntryWithBlockExpr() throws Exception {
                runTest("testData/refactoring/introduceParameter/stringTemplates/fullEntryWithBlockExpr.kt");
            }

            @TestMetadata("fullEntryWithSimpleName.kt")
            public void testFullEntryWithSimpleName() throws Exception {
                runTest("testData/refactoring/introduceParameter/stringTemplates/fullEntryWithSimpleName.kt");
            }

            @TestMetadata("multipleEntriesWithPrefix.kt")
            public void testMultipleEntriesWithPrefix() throws Exception {
                runTest("testData/refactoring/introduceParameter/stringTemplates/multipleEntriesWithPrefix.kt");
            }

            @TestMetadata("multipleEntriesWithSubstring.kt")
            public void testMultipleEntriesWithSubstring() throws Exception {
                runTest("testData/refactoring/introduceParameter/stringTemplates/multipleEntriesWithSubstring.kt");
            }

            @TestMetadata("multipleEntriesWithSuffix.kt")
            public void testMultipleEntriesWithSuffix() throws Exception {
                runTest("testData/refactoring/introduceParameter/stringTemplates/multipleEntriesWithSuffix.kt");
            }

            @TestMetadata("rawTemplateWithSubstring.kt")
            public void testRawTemplateWithSubstring() throws Exception {
                runTest("testData/refactoring/introduceParameter/stringTemplates/rawTemplateWithSubstring.kt");
            }

            @TestMetadata("singleEntryPrefix.kt")
            public void testSingleEntryPrefix() throws Exception {
                runTest("testData/refactoring/introduceParameter/stringTemplates/singleEntryPrefix.kt");
            }

            @TestMetadata("singleEntrySubstring.kt")
            public void testSingleEntrySubstring() throws Exception {
                runTest("testData/refactoring/introduceParameter/stringTemplates/singleEntrySubstring.kt");
            }

            @TestMetadata("singleEntrySuffix.kt")
            public void testSingleEntrySuffix() throws Exception {
                runTest("testData/refactoring/introduceParameter/stringTemplates/singleEntrySuffix.kt");
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/introduceParameter")
        public static class Uncategorized extends AbstractExtractionTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doIntroduceSimpleParameterTest, this, testDataFilePath);
            }

            @TestMetadata("annotationArgument.kt")
            public void testAnnotationArgument() throws Exception {
                runTest("testData/refactoring/introduceParameter/annotationArgument.kt");
            }

            @TestMetadata("assignment.kt")
            public void testAssignment() throws Exception {
                runTest("testData/refactoring/introduceParameter/assignment.kt");
            }

            @TestMetadata("avoidClassDuplicatingParameters.kt")
            public void testAvoidClassDuplicatingParameters() throws Exception {
                runTest("testData/refactoring/introduceParameter/avoidClassDuplicatingParameters.kt");
            }

            @TestMetadata("avoidFunDuplicatingParameters.kt")
            public void testAvoidFunDuplicatingParameters() throws Exception {
                runTest("testData/refactoring/introduceParameter/avoidFunDuplicatingParameters.kt");
            }

            @TestMetadata("classInAnonymousInitializer.kt")
            public void testClassInAnonymousInitializer() throws Exception {
                runTest("testData/refactoring/introduceParameter/classInAnonymousInitializer.kt");
            }

            @TestMetadata("classInPropertyInitializer.kt")
            public void testClassInPropertyInitializer() throws Exception {
                runTest("testData/refactoring/introduceParameter/classInPropertyInitializer.kt");
            }

            @TestMetadata("classMultipleUsages1.kt")
            public void testClassMultipleUsages1() throws Exception {
                runTest("testData/refactoring/introduceParameter/classMultipleUsages1.kt");
            }

            @TestMetadata("classMultipleUsages2.kt")
            public void testClassMultipleUsages2() throws Exception {
                runTest("testData/refactoring/introduceParameter/classMultipleUsages2.kt");
            }

            @TestMetadata("classMultipleUsagesOutsideScope.kt")
            public void testClassMultipleUsagesOutsideScope() throws Exception {
                runTest("testData/refactoring/introduceParameter/classMultipleUsagesOutsideScope.kt");
            }

            @TestMetadata("classMultipleUsagesSingleReplace1.kt")
            public void testClassMultipleUsagesSingleReplace1() throws Exception {
                runTest("testData/refactoring/introduceParameter/classMultipleUsagesSingleReplace1.kt");
            }

            @TestMetadata("classMultipleUsagesSingleReplace2.kt")
            public void testClassMultipleUsagesSingleReplace2() throws Exception {
                runTest("testData/refactoring/introduceParameter/classMultipleUsagesSingleReplace2.kt");
            }

            @TestMetadata("classNoParams.kt")
            public void testClassNoParams() throws Exception {
                runTest("testData/refactoring/introduceParameter/classNoParams.kt");
            }

            @TestMetadata("classParameterInFunctionBody.kt")
            public void testClassParameterInFunctionBody() throws Exception {
                runTest("testData/refactoring/introduceParameter/classParameterInFunctionBody.kt");
            }

            @TestMetadata("classParameterUsedOutside.kt")
            public void testClassParameterUsedOutside() throws Exception {
                runTest("testData/refactoring/introduceParameter/classParameterUsedOutside.kt");
            }

            @TestMetadata("classUnusedParameter.kt")
            public void testClassUnusedParameter() throws Exception {
                runTest("testData/refactoring/introduceParameter/classUnusedParameter.kt");
            }

            @TestMetadata("classUsedParameter.kt")
            public void testClassUsedParameter() throws Exception {
                runTest("testData/refactoring/introduceParameter/classUsedParameter.kt");
            }

            @TestMetadata("defaultValueInParens.kt")
            public void testDefaultValueInParens() throws Exception {
                runTest("testData/refactoring/introduceParameter/defaultValueInParens.kt");
            }

            @TestMetadata("defaultValueNoTempVar.kt")
            public void testDefaultValueNoTempVar() throws Exception {
                runTest("testData/refactoring/introduceParameter/defaultValueNoTempVar.kt");
            }

            @TestMetadata("forbiddenUsages.kt")
            public void testForbiddenUsages() throws Exception {
                runTest("testData/refactoring/introduceParameter/forbiddenUsages.kt");
            }

            @TestMetadata("foreignParameterRef.kt")
            public void testForeignParameterRef() throws Exception {
                runTest("testData/refactoring/introduceParameter/foreignParameterRef.kt");
            }

            @TestMetadata("fun.kt")
            public void testFun() throws Exception {
                runTest("testData/refactoring/introduceParameter/fun.kt");
            }

            @TestMetadata("functionMultipleUnusedParameters.kt")
            public void testFunctionMultipleUnusedParameters() throws Exception {
                runTest("testData/refactoring/introduceParameter/functionMultipleUnusedParameters.kt");
            }

            @TestMetadata("functionMultipleUsages.kt")
            public void testFunctionMultipleUsages() throws Exception {
                runTest("testData/refactoring/introduceParameter/functionMultipleUsages.kt");
            }

            @TestMetadata("functionMultipleUsagesSingleReplace.kt")
            public void testFunctionMultipleUsagesSingleReplace() throws Exception {
                runTest("testData/refactoring/introduceParameter/functionMultipleUsagesSingleReplace.kt");
            }

            @TestMetadata("functionUnusedParameter.kt")
            public void testFunctionUnusedParameter() throws Exception {
                runTest("testData/refactoring/introduceParameter/functionUnusedParameter.kt");
            }

            @TestMetadata("functionUsedParameter.kt")
            public void testFunctionUsedParameter() throws Exception {
                runTest("testData/refactoring/introduceParameter/functionUsedParameter.kt");
            }

            @TestMetadata("functionWithApproximatedType.kt")
            public void testFunctionWithApproximatedType() throws Exception {
                runTest("testData/refactoring/introduceParameter/functionWithApproximatedType.kt");
            }

            @TestMetadata("functionWithDefaultValue.kt")
            public void testFunctionWithDefaultValue() throws Exception {
                runTest("testData/refactoring/introduceParameter/functionWithDefaultValue.kt");
            }

            @TestMetadata("inDefaultValue.kt")
            public void testInDefaultValue() throws Exception {
                runTest("testData/refactoring/introduceParameter/inDefaultValue.kt");
            }

            @TestMetadata("lambdaArgument.kt")
            public void testLambdaArgument() throws Exception {
                runTest("testData/refactoring/introduceParameter/lambdaArgument.kt");
            }

            @TestMetadata("lastParameterHasBlockComment.kt")
            public void testLastParameterHasBlockComment() throws Exception {
                runTest("testData/refactoring/introduceParameter/lastParameterHasBlockComment.kt");
            }

            @TestMetadata("lastParameterHasBlockCommentAndTrailingComma.kt")
            public void testLastParameterHasBlockCommentAndTrailingComma() throws Exception {
                runTest("testData/refactoring/introduceParameter/lastParameterHasBlockCommentAndTrailingComma.kt");
            }

            @TestMetadata("lastParameterHasEolComment.kt")
            public void testLastParameterHasEolComment() throws Exception {
                runTest("testData/refactoring/introduceParameter/lastParameterHasEolComment.kt");
            }

            @TestMetadata("lastParameterHasEolCommentAndTrailingComma.kt")
            public void testLastParameterHasEolCommentAndTrailingComma() throws Exception {
                runTest("testData/refactoring/introduceParameter/lastParameterHasEolCommentAndTrailingComma.kt");
            }

            @TestMetadata("partialSubstitution.kt")
            public void testPartialSubstitution() throws Exception {
                runTest("testData/refactoring/introduceParameter/partialSubstitution.kt");
            }

            @TestMetadata("propertyAccessor.kt")
            public void testPropertyAccessor() throws Exception {
                runTest("testData/refactoring/introduceParameter/propertyAccessor.kt");
            }

            @TestMetadata("return.kt")
            public void testReturn() throws Exception {
                runTest("testData/refactoring/introduceParameter/return.kt");
            }

            @TestMetadata("secondaryConstructorWithDefaultValue.kt")
            public void testSecondaryConstructorWithDefaultValue() throws Exception {
                runTest("testData/refactoring/introduceParameter/secondaryConstructorWithDefaultValue.kt");
            }

            @TestMetadata("simpleNameWithDefaultValueSubstitution.kt")
            public void testSimpleNameWithDefaultValueSubstitution() throws Exception {
                runTest("testData/refactoring/introduceParameter/simpleNameWithDefaultValueSubstitution.kt");
            }

            @TestMetadata("substituteBinaryExpressions.kt")
            public void testSubstituteBinaryExpressions() throws Exception {
                runTest("testData/refactoring/introduceParameter/substituteBinaryExpressions.kt");
            }

            @TestMetadata("substituteCallExpressions.kt")
            public void testSubstituteCallExpressions() throws Exception {
                runTest("testData/refactoring/introduceParameter/substituteCallExpressions.kt");
            }

            @TestMetadata("substituteDelegationCallsNoTempVar.kt")
            public void testSubstituteDelegationCallsNoTempVar() throws Exception {
                runTest("testData/refactoring/introduceParameter/substituteDelegationCallsNoTempVar.kt");
            }

            @TestMetadata("substituteDoubleReceiver.kt")
            public void testSubstituteDoubleReceiver() throws Exception {
                runTest("testData/refactoring/introduceParameter/substituteDoubleReceiver.kt");
            }

            @TestMetadata("substituteExplicitThisInMember.kt")
            public void testSubstituteExplicitThisInMember() throws Exception {
                runTest("testData/refactoring/introduceParameter/substituteExplicitThisInMember.kt");
            }

            @TestMetadata("substituteImplicitThisInMember.kt")
            public void testSubstituteImplicitThisInMember() throws Exception {
                runTest("testData/refactoring/introduceParameter/substituteImplicitThisInMember.kt");
            }

            @TestMetadata("substituteInPrimaryConstructorCall.kt")
            public void testSubstituteInPrimaryConstructorCall() throws Exception {
                runTest("testData/refactoring/introduceParameter/substituteInPrimaryConstructorCall.kt");
            }

            @TestMetadata("substituteInSecondaryConstructorCall.kt")
            public void testSubstituteInSecondaryConstructorCall() throws Exception {
                runTest("testData/refactoring/introduceParameter/substituteInSecondaryConstructorCall.kt");
            }

            @TestMetadata("substituteIncrement.kt")
            public void testSubstituteIncrement() throws Exception {
                runTest("testData/refactoring/introduceParameter/substituteIncrement.kt");
            }

            @TestMetadata("substituteInfixCall.kt")
            public void testSubstituteInfixCall() throws Exception {
                runTest("testData/refactoring/introduceParameter/substituteInfixCall.kt");
            }

            @TestMetadata("superCallArgument.kt")
            public void testSuperCallArgument() throws Exception {
                runTest("testData/refactoring/introduceParameter/superCallArgument.kt");
            }

            @TestMetadata("throw.kt")
            public void testThrow() throws Exception {
                runTest("testData/refactoring/introduceParameter/throw.kt");
            }

            @TestMetadata("unusedDispatchReceiver.kt")
            public void testUnusedDispatchReceiver() throws Exception {
                runTest("testData/refactoring/introduceParameter/unusedDispatchReceiver.kt");
            }

            @TestMetadata("unusedExtensionReceiver.kt")
            public void testUnusedExtensionReceiver() throws Exception {
                runTest("testData/refactoring/introduceParameter/unusedExtensionReceiver.kt");
            }

            @TestMetadata("valueAtCallSite.kt")
            public void testValueAtCallSite() throws Exception {
                runTest("testData/refactoring/introduceParameter/valueAtCallSite.kt");
            }

            @TestMetadata("valueAtCallSiteMultipleUsages.kt")
            public void testValueAtCallSiteMultipleUsages() throws Exception {
                runTest("testData/refactoring/introduceParameter/valueAtCallSiteMultipleUsages.kt");
            }

            @TestMetadata("varargs.kt")
            public void testVarargs() throws Exception {
                runTest("testData/refactoring/introduceParameter/varargs.kt");
            }

            @TestMetadata("while.kt")
            public void testWhile() throws Exception {
                runTest("testData/refactoring/introduceParameter/while.kt");
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/introduceParameter/variableConversion")
        public static class VariableConversion extends AbstractExtractionTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doIntroduceSimpleParameterTest, this, testDataFilePath);
            }

            @TestMetadata("caretAtIdentifier.kt")
            public void testCaretAtIdentifier() throws Exception {
                runTest("testData/refactoring/introduceParameter/variableConversion/caretAtIdentifier.kt");
            }

            @TestMetadata("fullSelection.kt")
            public void testFullSelection() throws Exception {
                runTest("testData/refactoring/introduceParameter/variableConversion/fullSelection.kt");
            }
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/refactoring/introduceLambdaParameter")
    public abstract static class IntroduceLambdaParameter extends AbstractExtractionTest {
        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/introduceLambdaParameter/multiline")
        public static class Multiline extends AbstractExtractionTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doIntroduceLambdaParameterTest, this, testDataFilePath);
            }

            @TestMetadata("multilineBinaryExpression.kt")
            public void testMultilineBinaryExpression() throws Exception {
                runTest("testData/refactoring/introduceLambdaParameter/multiline/multilineBinaryExpression.kt");
            }

            @TestMetadata("multilineBinaryExpressionWithComments.kt")
            public void testMultilineBinaryExpressionWithComments() throws Exception {
                runTest("testData/refactoring/introduceLambdaParameter/multiline/multilineBinaryExpressionWithComments.kt");
            }

            @TestMetadata("multilineNestedBinaryExpression1.kt")
            public void testMultilineNestedBinaryExpression1() throws Exception {
                runTest("testData/refactoring/introduceLambdaParameter/multiline/multilineNestedBinaryExpression1.kt");
            }

            @TestMetadata("multilineNestedBinaryExpression2.kt")
            public void testMultilineNestedBinaryExpression2() throws Exception {
                runTest("testData/refactoring/introduceLambdaParameter/multiline/multilineNestedBinaryExpression2.kt");
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/introduceLambdaParameter/stringTemplates")
        public static class StringTemplates extends AbstractExtractionTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doIntroduceLambdaParameterTest, this, testDataFilePath);
            }

            @TestMetadata("brokenEntryWithBlockExpr.kt")
            public void testBrokenEntryWithBlockExpr() throws Exception {
                runTest("testData/refactoring/introduceLambdaParameter/stringTemplates/brokenEntryWithBlockExpr.kt");
            }

            @TestMetadata("brokenEntryWithExpr.kt")
            public void testBrokenEntryWithExpr() throws Exception {
                runTest("testData/refactoring/introduceLambdaParameter/stringTemplates/brokenEntryWithExpr.kt");
            }

            @TestMetadata("brokenEscapeEntry.kt")
            public void testBrokenEscapeEntry() throws Exception {
                runTest("testData/refactoring/introduceLambdaParameter/stringTemplates/brokenEscapeEntry.kt");
            }

            @TestMetadata("extractFalse.kt")
            public void testExtractFalse() throws Exception {
                runTest("testData/refactoring/introduceLambdaParameter/stringTemplates/extractFalse.kt");
            }

            @TestMetadata("extractIntegerLiteral.kt")
            public void testExtractIntegerLiteral() throws Exception {
                runTest("testData/refactoring/introduceLambdaParameter/stringTemplates/extractIntegerLiteral.kt");
            }

            @TestMetadata("extractTrue.kt")
            public void testExtractTrue() throws Exception {
                runTest("testData/refactoring/introduceLambdaParameter/stringTemplates/extractTrue.kt");
            }

            @TestMetadata("fullContent.kt")
            public void testFullContent() throws Exception {
                runTest("testData/refactoring/introduceLambdaParameter/stringTemplates/fullContent.kt");
            }

            @TestMetadata("fullEntryWithBlockExpr.kt")
            public void testFullEntryWithBlockExpr() throws Exception {
                runTest("testData/refactoring/introduceLambdaParameter/stringTemplates/fullEntryWithBlockExpr.kt");
            }

            @TestMetadata("fullEntryWithSimpleName.kt")
            public void testFullEntryWithSimpleName() throws Exception {
                runTest("testData/refactoring/introduceLambdaParameter/stringTemplates/fullEntryWithSimpleName.kt");
            }

            @TestMetadata("multipleEntriesWithPrefix.kt")
            public void testMultipleEntriesWithPrefix() throws Exception {
                runTest("testData/refactoring/introduceLambdaParameter/stringTemplates/multipleEntriesWithPrefix.kt");
            }

            @TestMetadata("multipleEntriesWithSubstring.kt")
            public void testMultipleEntriesWithSubstring() throws Exception {
                runTest("testData/refactoring/introduceLambdaParameter/stringTemplates/multipleEntriesWithSubstring.kt");
            }

            @TestMetadata("multipleEntriesWithSuffix.kt")
            public void testMultipleEntriesWithSuffix() throws Exception {
                runTest("testData/refactoring/introduceLambdaParameter/stringTemplates/multipleEntriesWithSuffix.kt");
            }

            @TestMetadata("rawTemplateWithSubstring.kt")
            public void testRawTemplateWithSubstring() throws Exception {
                runTest("testData/refactoring/introduceLambdaParameter/stringTemplates/rawTemplateWithSubstring.kt");
            }

            @TestMetadata("singleEntryPrefix.kt")
            public void testSingleEntryPrefix() throws Exception {
                runTest("testData/refactoring/introduceLambdaParameter/stringTemplates/singleEntryPrefix.kt");
            }

            @TestMetadata("singleEntrySubstring.kt")
            public void testSingleEntrySubstring() throws Exception {
                runTest("testData/refactoring/introduceLambdaParameter/stringTemplates/singleEntrySubstring.kt");
            }

            @TestMetadata("singleEntrySuffix.kt")
            public void testSingleEntrySuffix() throws Exception {
                runTest("testData/refactoring/introduceLambdaParameter/stringTemplates/singleEntrySuffix.kt");
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/introduceLambdaParameter")
        public static class Uncategorized extends AbstractExtractionTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doIntroduceLambdaParameterTest, this, testDataFilePath);
            }

            @TestMetadata("lambdaArgument.kt")
            public void testLambdaArgument() throws Exception {
                runTest("testData/refactoring/introduceLambdaParameter/lambdaArgument.kt");
            }

            @TestMetadata("lambdaParamInPrimaryConstructor.kt")
            public void testLambdaParamInPrimaryConstructor() throws Exception {
                runTest("testData/refactoring/introduceLambdaParameter/lambdaParamInPrimaryConstructor.kt");
            }

            @TestMetadata("lambdaParamMultiline.kt")
            public void testLambdaParamMultiline() throws Exception {
                runTest("testData/refactoring/introduceLambdaParameter/lambdaParamMultiline.kt");
            }

            @TestMetadata("lambdaParamNoDefaultValue.kt")
            public void testLambdaParamNoDefaultValue() throws Exception {
                runTest("testData/refactoring/introduceLambdaParameter/lambdaParamNoDefaultValue.kt");
            }

            @TestMetadata("lambdaParamNoDefaultValueSecondLambda.kt")
            public void testLambdaParamNoDefaultValueSecondLambda() throws Exception {
                runTest("testData/refactoring/introduceLambdaParameter/lambdaParamNoDefaultValueSecondLambda.kt");
            }

            @TestMetadata("lambdaParamNoParams.kt")
            public void testLambdaParamNoParams() throws Exception {
                runTest("testData/refactoring/introduceLambdaParameter/lambdaParamNoParams.kt");
            }

            @TestMetadata("lambdaParamOfNothing.kt")
            public void testLambdaParamOfNothing() throws Exception {
                runTest("testData/refactoring/introduceLambdaParameter/lambdaParamOfNothing.kt");
            }

            @TestMetadata("lambdaParamOfUnit.kt")
            public void testLambdaParamOfUnit() throws Exception {
                runTest("testData/refactoring/introduceLambdaParameter/lambdaParamOfUnit.kt");
            }

            @TestMetadata("lambdaParamWithDefaultValue.kt")
            public void testLambdaParamWithDefaultValue() throws Exception {
                runTest("testData/refactoring/introduceLambdaParameter/lambdaParamWithDefaultValue.kt");
            }

            @TestMetadata("suspendCalls.kt")
            public void testSuspendCalls() throws Exception {
                runTest("testData/refactoring/introduceLambdaParameter/suspendCalls.kt");
            }
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/refactoring/introduceJavaParameter")
    public static class IntroduceJavaParameter extends AbstractExtractionTest {
        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doIntroduceJavaParameterTest, this, testDataFilePath);
        }

        @TestMetadata("javaMethod.java")
        public void testJavaMethod() throws Exception {
            runTest("testData/refactoring/introduceJavaParameter/javaMethod.java");
        }

        @TestMetadata("javaMethodOverridingKotlinFunctionWithUsages.java")
        public void testJavaMethodOverridingKotlinFunctionWithUsages() throws Exception {
            runTest("testData/refactoring/introduceJavaParameter/javaMethodOverridingKotlinFunctionWithUsages.java");
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/refactoring/introduceTypeParameter")
    public static class IntroduceTypeParameter extends AbstractExtractionTest {
        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doIntroduceTypeParameterTest, this, testDataFilePath);
        }

        @TestMetadata("duplicates.kt")
        public void testDuplicates() throws Exception {
            runTest("testData/refactoring/introduceTypeParameter/duplicates.kt");
        }

        @TestMetadata("functionType.kt")
        public void testFunctionType() throws Exception {
            runTest("testData/refactoring/introduceTypeParameter/functionType.kt");
        }

        @TestMetadata("inClass.kt")
        public void testInClass() throws Exception {
            runTest("testData/refactoring/introduceTypeParameter/inClass.kt");
        }

        @TestMetadata("inProperty.kt")
        public void testInProperty() throws Exception {
            runTest("testData/refactoring/introduceTypeParameter/inProperty.kt");
        }

        @TestMetadata("nullableType.kt")
        public void testNullableType() throws Exception {
            runTest("testData/refactoring/introduceTypeParameter/nullableType.kt");
        }

        @TestMetadata("userType.kt")
        public void testUserType() throws Exception {
            runTest("testData/refactoring/introduceTypeParameter/userType.kt");
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/refactoring/introduceTypeAlias")
    public static class IntroduceTypeAlias extends AbstractExtractionTest {
        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doIntroduceTypeAliasTest, this, testDataFilePath);
        }

        @TestMetadata("callableReference.kt")
        public void testCallableReference() throws Exception {
            runTest("testData/refactoring/introduceTypeAlias/callableReference.kt");
        }

        @TestMetadata("callableReferenceSelector.kt")
        public void testCallableReferenceSelector() throws Exception {
            runTest("testData/refactoring/introduceTypeAlias/callableReferenceSelector.kt");
        }

        @TestMetadata("classLiteral.kt")
        public void testClassLiteral() throws Exception {
            runTest("testData/refactoring/introduceTypeAlias/classLiteral.kt");
        }

        @TestMetadata("constructorCalls.kt")
        public void testConstructorCalls() throws Exception {
            runTest("testData/refactoring/introduceTypeAlias/constructorCalls.kt");
        }

        @TestMetadata("deeplyNestedClass.kt")
        public void testDeeplyNestedClass() throws Exception {
            runTest("testData/refactoring/introduceTypeAlias/deeplyNestedClass.kt");
        }

        @TestMetadata("emptyName.kt")
        public void testEmptyName() throws Exception {
            runTest("testData/refactoring/introduceTypeAlias/emptyName.kt");
        }

        @TestMetadata("entireTypeExtracted.kt")
        public void testEntireTypeExtracted() throws Exception {
            runTest("testData/refactoring/introduceTypeAlias/entireTypeExtracted.kt");
        }

        @TestMetadata("equivalentNestedTypeElements.kt")
        public void testEquivalentNestedTypeElements() throws Exception {
            runTest("testData/refactoring/introduceTypeAlias/equivalentNestedTypeElements.kt");
        }

        @TestMetadata("existingTypeClash.kt")
        public void testExistingTypeClash() throws Exception {
            runTest("testData/refactoring/introduceTypeAlias/existingTypeClash.kt");
        }

        @TestMetadata("functionTypeDuplicatesNoTypeParameters.kt")
        public void testFunctionTypeDuplicatesNoTypeParameters() throws Exception {
            runTest("testData/refactoring/introduceTypeAlias/functionTypeDuplicatesNoTypeParameters.kt");
        }

        @TestMetadata("functionTypeDuplicatesWithTypeParameters.kt")
        public void testFunctionTypeDuplicatesWithTypeParameters() throws Exception {
            runTest("testData/refactoring/introduceTypeAlias/functionTypeDuplicatesWithTypeParameters.kt");
        }

        @TestMetadata("functionalType.kt")
        public void testFunctionalType() throws Exception {
            runTest("testData/refactoring/introduceTypeAlias/functionalType.kt");
        }

        @TestMetadata("localTypeExtracted.kt")
        public void testLocalTypeExtracted() throws Exception {
            runTest("testData/refactoring/introduceTypeAlias/localTypeExtracted.kt");
        }

        @TestMetadata("localWithVisibility.kt")
        public void testLocalWithVisibility() throws Exception {
            runTest("testData/refactoring/introduceTypeAlias/localWithVisibility.kt");
        }

        @TestMetadata("nestedClass.kt")
        public void testNestedClass() throws Exception {
            runTest("testData/refactoring/introduceTypeAlias/nestedClass.kt");
        }

        @TestMetadata("nestedTypesExtracted.kt")
        public void testNestedTypesExtracted() throws Exception {
            runTest("testData/refactoring/introduceTypeAlias/nestedTypesExtracted.kt");
        }

        @TestMetadata("noTypeElement.kt")
        public void testNoTypeElement() throws Exception {
            runTest("testData/refactoring/introduceTypeAlias/noTypeElement.kt");
        }

        @TestMetadata("nonIdentifierName.kt")
        public void testNonIdentifierName() throws Exception {
            runTest("testData/refactoring/introduceTypeAlias/nonIdentifierName.kt");
        }

        @TestMetadata("nullableType.kt")
        public void testNullableType() throws Exception {
            runTest("testData/refactoring/introduceTypeAlias/nullableType.kt");
        }

        @TestMetadata("privateTypeAlias.kt")
        public void testPrivateTypeAlias() throws Exception {
            runTest("testData/refactoring/introduceTypeAlias/privateTypeAlias.kt");
        }

        @TestMetadata("protectedInFile.kt")
        public void testProtectedInFile() throws Exception {
            runTest("testData/refactoring/introduceTypeAlias/protectedInFile.kt");
        }

        @TestMetadata("skipQualifiers.kt")
        public void testSkipQualifiers() throws Exception {
            runTest("testData/refactoring/introduceTypeAlias/skipQualifiers.kt");
        }

        @TestMetadata("suggestedName.kt")
        public void testSuggestedName() throws Exception {
            runTest("testData/refactoring/introduceTypeAlias/suggestedName.kt");
        }

        @TestMetadata("topLevelTypeAlias.kt")
        public void testTopLevelTypeAlias() throws Exception {
            runTest("testData/refactoring/introduceTypeAlias/topLevelTypeAlias.kt");
        }

        @TestMetadata("typeConstructor.kt")
        public void testTypeConstructor() throws Exception {
            runTest("testData/refactoring/introduceTypeAlias/typeConstructor.kt");
        }

        @TestMetadata("typesExtractedWithFunctionalType.kt")
        public void testTypesExtractedWithFunctionalType() throws Exception {
            runTest("testData/refactoring/introduceTypeAlias/typesExtractedWithFunctionalType.kt");
        }

        @TestMetadata("unmatchedNullability.kt")
        public void testUnmatchedNullability() throws Exception {
            runTest("testData/refactoring/introduceTypeAlias/unmatchedNullability.kt");
        }

        @TestMetadata("userTypeDuplicatesNoTypeParameters.kt")
        public void testUserTypeDuplicatesNoTypeParameters() throws Exception {
            runTest("testData/refactoring/introduceTypeAlias/userTypeDuplicatesNoTypeParameters.kt");
        }

        @TestMetadata("userTypeDuplicatesWithTypeParameters.kt")
        public void testUserTypeDuplicatesWithTypeParameters() throws Exception {
            runTest("testData/refactoring/introduceTypeAlias/userTypeDuplicatesWithTypeParameters.kt");
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/refactoring/introduceConstant")
    public abstract static class IntroduceConstant extends AbstractExtractionTest {
        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/introduceConstant/binaryExpression")
        public static class BinaryExpression extends AbstractExtractionTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doIntroduceConstantTest, this, testDataFilePath);
            }

            @TestMetadata("integerCompareTo.kt")
            public void testIntegerCompareTo() throws Exception {
                runTest("testData/refactoring/introduceConstant/binaryExpression/integerCompareTo.kt");
            }

            @TestMetadata("integerDec.kt")
            public void testIntegerDec() throws Exception {
                runTest("testData/refactoring/introduceConstant/binaryExpression/integerDec.kt");
            }

            @TestMetadata("integerDiv.kt")
            public void testIntegerDiv() throws Exception {
                runTest("testData/refactoring/introduceConstant/binaryExpression/integerDiv.kt");
            }

            @TestMetadata("integerEquals.kt")
            public void testIntegerEquals() throws Exception {
                runTest("testData/refactoring/introduceConstant/binaryExpression/integerEquals.kt");
            }

            @TestMetadata("integerInc.kt")
            public void testIntegerInc() throws Exception {
                runTest("testData/refactoring/introduceConstant/binaryExpression/integerInc.kt");
            }

            @TestMetadata("integerMinus.kt")
            public void testIntegerMinus() throws Exception {
                runTest("testData/refactoring/introduceConstant/binaryExpression/integerMinus.kt");
            }

            @TestMetadata("integerPlus.kt")
            public void testIntegerPlus() throws Exception {
                runTest("testData/refactoring/introduceConstant/binaryExpression/integerPlus.kt");
            }

            @TestMetadata("integerPlusConstVal.kt")
            public void testIntegerPlusConstVal() throws Exception {
                runTest("testData/refactoring/introduceConstant/binaryExpression/integerPlusConstVal.kt");
            }

            @TestMetadata("integerPlusConstValTwice.kt")
            public void testIntegerPlusConstValTwice() throws Exception {
                runTest("testData/refactoring/introduceConstant/binaryExpression/integerPlusConstValTwice.kt");
            }

            @TestMetadata("integerPlusFun.kt")
            public void testIntegerPlusFun() throws Exception {
                runTest("testData/refactoring/introduceConstant/binaryExpression/integerPlusFun.kt");
            }

            @TestMetadata("integerPlusVal.kt")
            public void testIntegerPlusVal() throws Exception {
                runTest("testData/refactoring/introduceConstant/binaryExpression/integerPlusVal.kt");
            }

            @TestMetadata("integerPlusVar.kt")
            public void testIntegerPlusVar() throws Exception {
                runTest("testData/refactoring/introduceConstant/binaryExpression/integerPlusVar.kt");
            }

            @TestMetadata("integerRem.kt")
            public void testIntegerRem() throws Exception {
                runTest("testData/refactoring/introduceConstant/binaryExpression/integerRem.kt");
            }

            @TestMetadata("integerTimes.kt")
            public void testIntegerTimes() throws Exception {
                runTest("testData/refactoring/introduceConstant/binaryExpression/integerTimes.kt");
            }

            @TestMetadata("integerUnaryMinus.kt")
            public void testIntegerUnaryMinus() throws Exception {
                runTest("testData/refactoring/introduceConstant/binaryExpression/integerUnaryMinus.kt");
            }

            @TestMetadata("integerUnaryPlus.kt")
            public void testIntegerUnaryPlus() throws Exception {
                runTest("testData/refactoring/introduceConstant/binaryExpression/integerUnaryPlus.kt");
            }

            @TestMetadata("paranthesis.kt")
            public void testParanthesis() throws Exception {
                runTest("testData/refactoring/introduceConstant/binaryExpression/paranthesis.kt");
            }

            @TestMetadata("paranthesisBroken.kt")
            public void testParanthesisBroken() throws Exception {
                runTest("testData/refactoring/introduceConstant/binaryExpression/paranthesisBroken.kt");
            }

            @TestMetadata("stringCompareTo.kt")
            public void testStringCompareTo() throws Exception {
                runTest("testData/refactoring/introduceConstant/binaryExpression/stringCompareTo.kt");
            }

            @TestMetadata("stringCustomOperator.kt")
            public void testStringCustomOperator() throws Exception {
                runTest("testData/refactoring/introduceConstant/binaryExpression/stringCustomOperator.kt");
            }

            @TestMetadata("stringEquals.kt")
            public void testStringEquals() throws Exception {
                runTest("testData/refactoring/introduceConstant/binaryExpression/stringEquals.kt");
            }

            @TestMetadata("stringPlus.kt")
            public void testStringPlus() throws Exception {
                runTest("testData/refactoring/introduceConstant/binaryExpression/stringPlus.kt");
            }

            @TestMetadata("stringPlusPartNotConst.kt")
            public void testStringPlusPartNotConst() throws Exception {
                runTest("testData/refactoring/introduceConstant/binaryExpression/stringPlusPartNotConst.kt");
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/introduceConstant/dotQualifiedExpression")
        public static class DotQualifiedExpression extends AbstractExtractionTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doIntroduceConstantTest, this, testDataFilePath);
            }

            @TestMetadata("and.kt")
            public void testAnd() throws Exception {
                runTest("testData/refactoring/introduceConstant/dotQualifiedExpression/and.kt");
            }

            @TestMetadata("inv.kt")
            public void testInv() throws Exception {
                runTest("testData/refactoring/introduceConstant/dotQualifiedExpression/inv.kt");
            }

            @TestMetadata("or.kt")
            public void testOr() throws Exception {
                runTest("testData/refactoring/introduceConstant/dotQualifiedExpression/or.kt");
            }

            @TestMetadata("plus.kt")
            public void testPlus() throws Exception {
                runTest("testData/refactoring/introduceConstant/dotQualifiedExpression/plus.kt");
            }

            @TestMetadata("shl.kt")
            public void testShl() throws Exception {
                runTest("testData/refactoring/introduceConstant/dotQualifiedExpression/shl.kt");
            }

            @TestMetadata("shr.kt")
            public void testShr() throws Exception {
                runTest("testData/refactoring/introduceConstant/dotQualifiedExpression/shr.kt");
            }

            @TestMetadata("toByte.kt")
            public void testToByte() throws Exception {
                runTest("testData/refactoring/introduceConstant/dotQualifiedExpression/toByte.kt");
            }

            @TestMetadata("toFloat.kt")
            public void testToFloat() throws Exception {
                runTest("testData/refactoring/introduceConstant/dotQualifiedExpression/toFloat.kt");
            }

            @TestMetadata("ushr.kt")
            public void testUshr() throws Exception {
                runTest("testData/refactoring/introduceConstant/dotQualifiedExpression/ushr.kt");
            }

            @TestMetadata("xor.kt")
            public void testXor() throws Exception {
                runTest("testData/refactoring/introduceConstant/dotQualifiedExpression/xor.kt");
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/introduceConstant/stringTemplates")
        public static class StringTemplates extends AbstractExtractionTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doIntroduceConstantTest, this, testDataFilePath);
            }

            @TestMetadata("brokenEntryWithBlockExpr.kt")
            public void testBrokenEntryWithBlockExpr() throws Exception {
                runTest("testData/refactoring/introduceConstant/stringTemplates/brokenEntryWithBlockExpr.kt");
            }

            @TestMetadata("brokenEntryWithExpr.kt")
            public void testBrokenEntryWithExpr() throws Exception {
                runTest("testData/refactoring/introduceConstant/stringTemplates/brokenEntryWithExpr.kt");
            }

            @TestMetadata("brokenEscapeEntry.kt")
            public void testBrokenEscapeEntry() throws Exception {
                runTest("testData/refactoring/introduceConstant/stringTemplates/brokenEscapeEntry.kt");
            }

            @TestMetadata("extractFalse.kt")
            public void testExtractFalse() throws Exception {
                runTest("testData/refactoring/introduceConstant/stringTemplates/extractFalse.kt");
            }

            @TestMetadata("extractIntegerLiteral.kt")
            public void testExtractIntegerLiteral() throws Exception {
                runTest("testData/refactoring/introduceConstant/stringTemplates/extractIntegerLiteral.kt");
            }

            @TestMetadata("extractTrue.kt")
            public void testExtractTrue() throws Exception {
                runTest("testData/refactoring/introduceConstant/stringTemplates/extractTrue.kt");
            }

            @TestMetadata("partTemplate.kt")
            public void testPartTemplate() throws Exception {
                runTest("testData/refactoring/introduceConstant/stringTemplates/partTemplate.kt");
            }

            @TestMetadata("singleEntryPrefix.kt")
            public void testSingleEntryPrefix() throws Exception {
                runTest("testData/refactoring/introduceConstant/stringTemplates/singleEntryPrefix.kt");
            }

            @TestMetadata("singleEntrySubstring.kt")
            public void testSingleEntrySubstring() throws Exception {
                runTest("testData/refactoring/introduceConstant/stringTemplates/singleEntrySubstring.kt");
            }

            @TestMetadata("singleEntrySuffix.kt")
            public void testSingleEntrySuffix() throws Exception {
                runTest("testData/refactoring/introduceConstant/stringTemplates/singleEntrySuffix.kt");
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("testData/refactoring/introduceConstant")
        public static class Uncategorized extends AbstractExtractionTest {
            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doIntroduceConstantTest, this, testDataFilePath);
            }

            @TestMetadata("extractInteger.kt")
            public void testExtractInteger() throws Exception {
                runTest("testData/refactoring/introduceConstant/extractInteger.kt");
            }

            @TestMetadata("extractMultipleExpressions.kt")
            public void testExtractMultipleExpressions() throws Exception {
                runTest("testData/refactoring/introduceConstant/extractMultipleExpressions.kt");
            }

            @TestMetadata("extractPartNonConstVal.kt")
            public void testExtractPartNonConstVal() throws Exception {
                runTest("testData/refactoring/introduceConstant/extractPartNonConstVal.kt");
            }

            @TestMetadata("extractWithNameClash.kt")
            public void testExtractWithNameClash() throws Exception {
                runTest("testData/refactoring/introduceConstant/extractWithNameClash.kt");
            }
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/refactoring/extractSuperclass")
    public static class ExtractSuperclass extends AbstractExtractionTest {
        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doExtractSuperclassTest, this, testDataFilePath);
        }

        @TestMetadata("abstractedMemberUsingPrivate.kt")
        public void testAbstractedMemberUsingPrivate() throws Exception {
            runTest("testData/refactoring/extractSuperclass/abstractedMemberUsingPrivate.kt");
        }

        @TestMetadata("addSuperclassNoSecondaryConstructors.kt")
        public void testAddSuperclassNoSecondaryConstructors() throws Exception {
            runTest("testData/refactoring/extractSuperclass/addSuperclassNoSecondaryConstructors.kt");
        }

        @TestMetadata("addSuperclassOnlySecondaryConstructors.kt")
        public void testAddSuperclassOnlySecondaryConstructors() throws Exception {
            runTest("testData/refactoring/extractSuperclass/addSuperclassOnlySecondaryConstructors.kt");
        }

        @TestMetadata("addSuperclassPrimaryConstructor.kt")
        public void testAddSuperclassPrimaryConstructor() throws Exception {
            runTest("testData/refactoring/extractSuperclass/addSuperclassPrimaryConstructor.kt");
        }

        @TestMetadata("addTypeParameters.kt")
        public void testAddTypeParameters() throws Exception {
            runTest("testData/refactoring/extractSuperclass/addTypeParameters.kt");
        }

        @TestMetadata("addTypeParametersWithAbstract.kt")
        public void testAddTypeParametersWithAbstract() throws Exception {
            runTest("testData/refactoring/extractSuperclass/addTypeParametersWithAbstract.kt");
        }

        @TestMetadata("annotation.kt")
        public void testAnnotation() throws Exception {
            runTest("testData/refactoring/extractSuperclass/annotation.kt");
        }

        @TestMetadata("dropPropertyParameterModifiers.kt")
        public void testDropPropertyParameterModifiers() throws Exception {
            runTest("testData/refactoring/extractSuperclass/dropPropertyParameterModifiers.kt");
        }

        @TestMetadata("enum.kt")
        public void testEnum() throws Exception {
            runTest("testData/refactoring/extractSuperclass/enum.kt");
        }

        @TestMetadata("extractToExistingFile.kt")
        public void testExtractToExistingFile() throws Exception {
            runTest("testData/refactoring/extractSuperclass/extractToExistingFile.kt");
        }

        @TestMetadata("interface.kt")
        public void testInterface() throws Exception {
            runTest("testData/refactoring/extractSuperclass/interface.kt");
        }

        @TestMetadata("noWarningOnVisibilityInsideAbstractedMember.kt")
        public void testNoWarningOnVisibilityInsideAbstractedMember() throws Exception {
            runTest("testData/refactoring/extractSuperclass/noWarningOnVisibilityInsideAbstractedMember.kt");
        }

        @TestMetadata("privateClass.kt")
        public void testPrivateClass() throws Exception {
            runTest("testData/refactoring/extractSuperclass/privateClass.kt");
        }

        @TestMetadata("privateMember.kt")
        public void testPrivateMember() throws Exception {
            runTest("testData/refactoring/extractSuperclass/privateMember.kt");
        }

        @TestMetadata("privateMemberWithUsages.kt")
        public void testPrivateMemberWithUsages() throws Exception {
            runTest("testData/refactoring/extractSuperclass/privateMemberWithUsages.kt");
        }

        @TestMetadata("reformatModifierList.kt")
        public void testReformatModifierList() throws Exception {
            runTest("testData/refactoring/extractSuperclass/reformatModifierList.kt");
        }

        @TestMetadata("replaceSuperclass.kt")
        public void testReplaceSuperclass() throws Exception {
            runTest("testData/refactoring/extractSuperclass/replaceSuperclass.kt");
        }

        @TestMetadata("specialName.kt")
        public void testSpecialName() throws Exception {
            runTest("testData/refactoring/extractSuperclass/specialName.kt");
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("testData/refactoring/extractInterface")
    public static class ExtractInterface extends AbstractExtractionTest {
        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doExtractInterfaceTest, this, testDataFilePath);
        }

        @TestMetadata("abstractedMemberUsingPrivate.kt")
        public void testAbstractedMemberUsingPrivate() throws Exception {
            runTest("testData/refactoring/extractInterface/abstractedMemberUsingPrivate.kt");
        }

        @TestMetadata("addImportOnParameterPullUp.kt")
        public void testAddImportOnParameterPullUp() throws Exception {
            runTest("testData/refactoring/extractInterface/addImportOnParameterPullUp.kt");
        }

        @TestMetadata("addInterface.kt")
        public void testAddInterface() throws Exception {
            runTest("testData/refactoring/extractInterface/addInterface.kt");
        }

        @TestMetadata("addInterfaceWithAbstract.kt")
        public void testAddInterfaceWithAbstract() throws Exception {
            runTest("testData/refactoring/extractInterface/addInterfaceWithAbstract.kt");
        }

        @TestMetadata("addTypeParameters.kt")
        public void testAddTypeParameters() throws Exception {
            runTest("testData/refactoring/extractInterface/addTypeParameters.kt");
        }

        @TestMetadata("addTypeParametersWithAbstract.kt")
        public void testAddTypeParametersWithAbstract() throws Exception {
            runTest("testData/refactoring/extractInterface/addTypeParametersWithAbstract.kt");
        }

        @TestMetadata("annotation.kt")
        public void testAnnotation() throws Exception {
            runTest("testData/refactoring/extractInterface/annotation.kt");
        }

        @TestMetadata("dropFinal.kt")
        public void testDropFinal() throws Exception {
            runTest("testData/refactoring/extractInterface/dropFinal.kt");
        }

        @TestMetadata("extractToExistingFile.kt")
        public void testExtractToExistingFile() throws Exception {
            runTest("testData/refactoring/extractInterface/extractToExistingFile.kt");
        }

        @TestMetadata("liftInternal.kt")
        public void testLiftInternal() throws Exception {
            runTest("testData/refactoring/extractInterface/liftInternal.kt");
        }

        @TestMetadata("liftPrivate.kt")
        public void testLiftPrivate() throws Exception {
            runTest("testData/refactoring/extractInterface/liftPrivate.kt");
        }

        @TestMetadata("liftProtected.kt")
        public void testLiftProtected() throws Exception {
            runTest("testData/refactoring/extractInterface/liftProtected.kt");
        }

        @TestMetadata("noWarningOnVisibilityInsideAbstractedMember.kt")
        public void testNoWarningOnVisibilityInsideAbstractedMember() throws Exception {
            runTest("testData/refactoring/extractInterface/noWarningOnVisibilityInsideAbstractedMember.kt");
        }

        @TestMetadata("privateMemberWithUsages.kt")
        public void testPrivateMemberWithUsages() throws Exception {
            runTest("testData/refactoring/extractInterface/privateMemberWithUsages.kt");
        }

        @TestMetadata("specialName.kt")
        public void testSpecialName() throws Exception {
            runTest("testData/refactoring/extractInterface/specialName.kt");
        }
    }
}
