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

package org.jetbrains.kotlin.idea.completion.test;

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

/**
 * This class is generated by {@link org.jetbrains.kotlin.testGenerator.generator.TestGenerator}.
 * DO NOT MODIFY MANUALLY.
 */
@SuppressWarnings("all")
@TestRoot("completion/tests-k1")
@TestDataPath("$CONTENT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public abstract class MultiPlatformCompletionTestGenerated extends AbstractMultiPlatformCompletionTest {
    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("../testData/multiPlatform/actualDeclaration")
    public static class ActualDeclaration extends AbstractMultiPlatformCompletionTest {
        @java.lang.Override
        @org.jetbrains.annotations.NotNull
        public final KotlinPluginMode getPluginMode() {
            return KotlinPluginMode.K1;
        }

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

        @TestMetadata("actualClassInIntermediateModule")
        public void testActualClassInIntermediateModule() throws Exception {
            runTest("../testData/multiPlatform/actualDeclaration/actualClassInIntermediateModule/");
        }

        @TestMetadata("actualClassInNonLeafModule")
        public void testActualClassInNonLeafModule() throws Exception {
            runTest("../testData/multiPlatform/actualDeclaration/actualClassInNonLeafModule/");
        }

        @TestMetadata("actualClassNotInNonLeafModule")
        public void testActualClassNotInNonLeafModule() throws Exception {
            runTest("../testData/multiPlatform/actualDeclaration/actualClassNotInNonLeafModule/");
        }

        @TestMetadata("actualFun")
        public void testActualFun() throws Exception {
            runTest("../testData/multiPlatform/actualDeclaration/actualFun/");
        }

        @TestMetadata("actualFunInIntermediateModule")
        public void testActualFunInIntermediateModule() throws Exception {
            runTest("../testData/multiPlatform/actualDeclaration/actualFunInIntermediateModule/");
        }

        @TestMetadata("actualFunInNonLeafModule")
        public void testActualFunInNonLeafModule() throws Exception {
            runTest("../testData/multiPlatform/actualDeclaration/actualFunInNonLeafModule/");
        }

        @TestMetadata("actualFunNotInNonLeafModule")
        public void testActualFunNotInNonLeafModule() throws Exception {
            runTest("../testData/multiPlatform/actualDeclaration/actualFunNotInNonLeafModule/");
        }

        @TestMetadata("actualKeywordFromSeveralFiles")
        public void testActualKeywordFromSeveralFiles() throws Exception {
            runTest("../testData/multiPlatform/actualDeclaration/actualKeywordFromSeveralFiles/");
        }

        @TestMetadata("actualKeywordFun")
        public void testActualKeywordFun() throws Exception {
            runTest("../testData/multiPlatform/actualDeclaration/actualKeywordFun/");
        }

        @TestMetadata("actualKeywordModuleTargetIsNotVisibleInAnotherModule")
        public void testActualKeywordModuleTargetIsNotVisibleInAnotherModule() throws Exception {
            runTest("../testData/multiPlatform/actualDeclaration/actualKeywordModuleTargetIsNotVisibleInAnotherModule/");
        }

        @TestMetadata("actualKeywordVal")
        public void testActualKeywordVal() throws Exception {
            runTest("../testData/multiPlatform/actualDeclaration/actualKeywordVal/");
        }

        @TestMetadata("actualKeywordWithSamePackage")
        public void testActualKeywordWithSamePackage() throws Exception {
            runTest("../testData/multiPlatform/actualDeclaration/actualKeywordWithSamePackage/");
        }

        @TestMetadata("actualVal")
        public void testActualVal() throws Exception {
            runTest("../testData/multiPlatform/actualDeclaration/actualVal/");
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("../testData/multiPlatform/classDeclaration")
    public static class ClassDeclaration extends AbstractMultiPlatformCompletionTest {
        @java.lang.Override
        @org.jetbrains.annotations.NotNull
        public final KotlinPluginMode getPluginMode() {
            return KotlinPluginMode.K1;
        }

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

        @TestMetadata("classInCommon")
        public void testClassInCommon() throws Exception {
            runTest("../testData/multiPlatform/classDeclaration/classInCommon/");
        }

        @TestMetadata("classInCommonNonImported")
        public void testClassInCommonNonImported() throws Exception {
            runTest("../testData/multiPlatform/classDeclaration/classInCommonNonImported/");
        }

        @TestMetadata("classInPlatform")
        public void testClassInPlatform() throws Exception {
            runTest("../testData/multiPlatform/classDeclaration/classInPlatform/");
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("../testData/multiPlatform/functionDeclaration")
    public static class FunctionDeclaration extends AbstractMultiPlatformCompletionTest {
        @java.lang.Override
        @org.jetbrains.annotations.NotNull
        public final KotlinPluginMode getPluginMode() {
            return KotlinPluginMode.K1;
        }

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

        @TestMetadata("functionInCommon")
        public void testFunctionInCommon() throws Exception {
            runTest("../testData/multiPlatform/functionDeclaration/functionInCommon/");
        }

        @TestMetadata("functionInPlatform")
        public void testFunctionInPlatform() throws Exception {
            runTest("../testData/multiPlatform/functionDeclaration/functionInPlatform/");
        }
    }
}
