/*
 * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
 * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
 */

package org.jetbrains.kotlin.js.test.fir;

import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.test.util.KtTestUtil;
import org.jetbrains.kotlin.test.TargetBackend;
import org.jetbrains.kotlin.test.TestMetadata;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;

import java.io.File;
import java.util.regex.Pattern;

/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.GenerateJsTestsKt}. DO NOT MODIFY MANUALLY */
@SuppressWarnings("all")
@TestMetadata("compiler/testData/diagnostics/klibSerializationTests")
@TestDataPath("$PROJECT_ROOT")
public class FirPsiJsKlibDiagnosticsTestGenerated extends AbstractFirPsiJsDiagnosticWithBackendTest {
  @Test
  public void testAllFilesPresentInKlibSerializationTests() {
    KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/klibSerializationTests"), Pattern.compile("^([^_](.+))\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), TargetBackend.JS_IR, true);
  }

  @Test
  @TestMetadata("signatureClashClasses.kt")
  public void testSignatureClashClasses() {
    runTest("compiler/testData/diagnostics/klibSerializationTests/signatureClashClasses.kt");
  }

  @Test
  @TestMetadata("signatureClashFunctions.kt")
  public void testSignatureClashFunctions() {
    runTest("compiler/testData/diagnostics/klibSerializationTests/signatureClashFunctions.kt");
  }

  @Test
  @TestMetadata("signatureClashVariables.kt")
  public void testSignatureClashVariables() {
    runTest("compiler/testData/diagnostics/klibSerializationTests/signatureClashVariables.kt");
  }

  @Test
  @TestMetadata("signatureClash_MPP.kt")
  public void testSignatureClash_MPP() {
    runTest("compiler/testData/diagnostics/klibSerializationTests/signatureClash_MPP.kt");
  }

  @Nested
  @TestMetadata("compiler/testData/diagnostics/klibSerializationTests/privateTypeUsageInsideNonPrivateInlineFunction")
  @TestDataPath("$PROJECT_ROOT")
  public class PrivateTypeUsageInsideNonPrivateInlineFunction {
    @Test
    public void testAllFilesPresentInPrivateTypeUsageInsideNonPrivateInlineFunction() {
      KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/klibSerializationTests/privateTypeUsageInsideNonPrivateInlineFunction"), Pattern.compile("^([^_](.+))\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), TargetBackend.JS_IR, true);
    }

    @Test
    @TestMetadata("privateClassMembersAsArgumentsError.kt")
    public void testPrivateClassMembersAsArgumentsError() {
      runTest("compiler/testData/diagnostics/klibSerializationTests/privateTypeUsageInsideNonPrivateInlineFunction/privateClassMembersAsArgumentsError.kt");
    }

    @Test
    @TestMetadata("privateClassMembersAsArgumentsWarning.kt")
    public void testPrivateClassMembersAsArgumentsWarning() {
      runTest("compiler/testData/diagnostics/klibSerializationTests/privateTypeUsageInsideNonPrivateInlineFunction/privateClassMembersAsArgumentsWarning.kt");
    }

    @Test
    @TestMetadata("privateTypesInsideInternalInlineFunctionError.kt")
    public void testPrivateTypesInsideInternalInlineFunctionError() {
      runTest("compiler/testData/diagnostics/klibSerializationTests/privateTypeUsageInsideNonPrivateInlineFunction/privateTypesInsideInternalInlineFunctionError.kt");
    }

    @Test
    @TestMetadata("privateTypesInsideInternalInlineFunctionErrorWithInlinedFunInKlib.kt")
    public void testPrivateTypesInsideInternalInlineFunctionErrorWithInlinedFunInKlib() {
      runTest("compiler/testData/diagnostics/klibSerializationTests/privateTypeUsageInsideNonPrivateInlineFunction/privateTypesInsideInternalInlineFunctionErrorWithInlinedFunInKlib.kt");
    }

    @Test
    @TestMetadata("privateTypesInsideInternalInlineFunctionWarning.kt")
    public void testPrivateTypesInsideInternalInlineFunctionWarning() {
      runTest("compiler/testData/diagnostics/klibSerializationTests/privateTypeUsageInsideNonPrivateInlineFunction/privateTypesInsideInternalInlineFunctionWarning.kt");
    }

    @Test
    @TestMetadata("privateTypesInsideInternalInlineFunctionWarningWithInlinedFunInKlib.kt")
    public void testPrivateTypesInsideInternalInlineFunctionWarningWithInlinedFunInKlib() {
      runTest("compiler/testData/diagnostics/klibSerializationTests/privateTypeUsageInsideNonPrivateInlineFunction/privateTypesInsideInternalInlineFunctionWarningWithInlinedFunInKlib.kt");
    }

    @Test
    @TestMetadata("publicClassAsPrivateSuperClassError.kt")
    public void testPublicClassAsPrivateSuperClassError() {
      runTest("compiler/testData/diagnostics/klibSerializationTests/privateTypeUsageInsideNonPrivateInlineFunction/publicClassAsPrivateSuperClassError.kt");
    }

    @Test
    @TestMetadata("publicClassAsPrivateSuperClassWarning.kt")
    public void testPublicClassAsPrivateSuperClassWarning() {
      runTest("compiler/testData/diagnostics/klibSerializationTests/privateTypeUsageInsideNonPrivateInlineFunction/publicClassAsPrivateSuperClassWarning.kt");
    }

    @Test
    @TestMetadata("twoLevelNestedClassError.kt")
    public void testTwoLevelNestedClassError() {
      runTest("compiler/testData/diagnostics/klibSerializationTests/privateTypeUsageInsideNonPrivateInlineFunction/twoLevelNestedClassError.kt");
    }

    @Test
    @TestMetadata("twoLevelNestedClassWarning.kt")
    public void testTwoLevelNestedClassWarning() {
      runTest("compiler/testData/diagnostics/klibSerializationTests/privateTypeUsageInsideNonPrivateInlineFunction/twoLevelNestedClassWarning.kt");
    }

    @Nested
    @TestMetadata("compiler/testData/diagnostics/klibSerializationTests/privateTypeUsageInsideNonPrivateInlineFunction/privateMember")
    @TestDataPath("$PROJECT_ROOT")
    public class PrivateMember {
      @Test
      public void testAllFilesPresentInPrivateMember() {
        KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/klibSerializationTests/privateTypeUsageInsideNonPrivateInlineFunction/privateMember"), Pattern.compile("^([^_](.+))\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), TargetBackend.JS_IR, true);
      }

      @Test
      @TestMetadata("leakingPrivateClassConstructorError.kt")
      public void testLeakingPrivateClassConstructorError() {
        runTest("compiler/testData/diagnostics/klibSerializationTests/privateTypeUsageInsideNonPrivateInlineFunction/privateMember/leakingPrivateClassConstructorError.kt");
      }

      @Test
      @TestMetadata("leakingPrivateClassConstructorWarning.kt")
      public void testLeakingPrivateClassConstructorWarning() {
        runTest("compiler/testData/diagnostics/klibSerializationTests/privateTypeUsageInsideNonPrivateInlineFunction/privateMember/leakingPrivateClassConstructorWarning.kt");
      }

      @Test
      @TestMetadata("usePrivateFunInterfaceFromInlineFunError.kt")
      public void testUsePrivateFunInterfaceFromInlineFunError() {
        runTest("compiler/testData/diagnostics/klibSerializationTests/privateTypeUsageInsideNonPrivateInlineFunction/privateMember/usePrivateFunInterfaceFromInlineFunError.kt");
      }

      @Test
      @TestMetadata("usePrivateFunInterfaceFromInlineFunWarning.kt")
      public void testUsePrivateFunInterfaceFromInlineFunWarning() {
        runTest("compiler/testData/diagnostics/klibSerializationTests/privateTypeUsageInsideNonPrivateInlineFunction/privateMember/usePrivateFunInterfaceFromInlineFunWarning.kt");
      }
    }

    @Nested
    @TestMetadata("compiler/testData/diagnostics/klibSerializationTests/privateTypeUsageInsideNonPrivateInlineFunction/topLevelPrivate")
    @TestDataPath("$PROJECT_ROOT")
    public class TopLevelPrivate {
      @Test
      public void testAllFilesPresentInTopLevelPrivate() {
        KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/klibSerializationTests/privateTypeUsageInsideNonPrivateInlineFunction/topLevelPrivate"), Pattern.compile("^([^_](.+))\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), TargetBackend.JS_IR, true);
      }

      @Test
      @TestMetadata("leakingPrivateClassThroughtKlassError.kt")
      public void testLeakingPrivateClassThroughtKlassError() {
        runTest("compiler/testData/diagnostics/klibSerializationTests/privateTypeUsageInsideNonPrivateInlineFunction/topLevelPrivate/leakingPrivateClassThroughtKlassError.kt");
      }

      @Test
      @TestMetadata("leakingPrivateClassThroughtKlassWarning.kt")
      public void testLeakingPrivateClassThroughtKlassWarning() {
        runTest("compiler/testData/diagnostics/klibSerializationTests/privateTypeUsageInsideNonPrivateInlineFunction/topLevelPrivate/leakingPrivateClassThroughtKlassWarning.kt");
      }

      @Test
      @TestMetadata("leakingPrivateClassThroughtPrivateTopLevelFunError.kt")
      public void testLeakingPrivateClassThroughtPrivateTopLevelFunError() {
        runTest("compiler/testData/diagnostics/klibSerializationTests/privateTypeUsageInsideNonPrivateInlineFunction/topLevelPrivate/leakingPrivateClassThroughtPrivateTopLevelFunError.kt");
      }

      @Test
      @TestMetadata("leakingPrivateClassThroughtPrivateTopLevelFunErrorWithInlinedFunInKlib.kt")
      public void testLeakingPrivateClassThroughtPrivateTopLevelFunErrorWithInlinedFunInKlib() {
        runTest("compiler/testData/diagnostics/klibSerializationTests/privateTypeUsageInsideNonPrivateInlineFunction/topLevelPrivate/leakingPrivateClassThroughtPrivateTopLevelFunErrorWithInlinedFunInKlib.kt");
      }

      @Test
      @TestMetadata("leakingPrivateClassThroughtPrivateTopLevelFunWarning.kt")
      public void testLeakingPrivateClassThroughtPrivateTopLevelFunWarning() {
        runTest("compiler/testData/diagnostics/klibSerializationTests/privateTypeUsageInsideNonPrivateInlineFunction/topLevelPrivate/leakingPrivateClassThroughtPrivateTopLevelFunWarning.kt");
      }

      @Test
      @TestMetadata("leakingPrivateClassThroughtPrivateTopLevelFunWarningWithInlinedFunInKlib.kt")
      public void testLeakingPrivateClassThroughtPrivateTopLevelFunWarningWithInlinedFunInKlib() {
        runTest("compiler/testData/diagnostics/klibSerializationTests/privateTypeUsageInsideNonPrivateInlineFunction/topLevelPrivate/leakingPrivateClassThroughtPrivateTopLevelFunWarningWithInlinedFunInKlib.kt");
      }

      @Test
      @TestMetadata("leakingPrivateClassThroughtTypecheckError.kt")
      public void testLeakingPrivateClassThroughtTypecheckError() {
        runTest("compiler/testData/diagnostics/klibSerializationTests/privateTypeUsageInsideNonPrivateInlineFunction/topLevelPrivate/leakingPrivateClassThroughtTypecheckError.kt");
      }

      @Test
      @TestMetadata("leakingPrivateClassThroughtTypecheckWarning.kt")
      public void testLeakingPrivateClassThroughtTypecheckWarning() {
        runTest("compiler/testData/diagnostics/klibSerializationTests/privateTypeUsageInsideNonPrivateInlineFunction/topLevelPrivate/leakingPrivateClassThroughtTypecheckWarning.kt");
      }

      @Test
      @TestMetadata("usePrivateClassThroughGenericType.kt")
      public void testUsePrivateClassThroughGenericType() {
        runTest("compiler/testData/diagnostics/klibSerializationTests/privateTypeUsageInsideNonPrivateInlineFunction/topLevelPrivate/usePrivateClassThroughGenericType.kt");
      }

      @Test
      @TestMetadata("usePrivateClassThroughtPrivateTopLevelFun.kt")
      public void testUsePrivateClassThroughtPrivateTopLevelFun() {
        runTest("compiler/testData/diagnostics/klibSerializationTests/privateTypeUsageInsideNonPrivateInlineFunction/topLevelPrivate/usePrivateClassThroughtPrivateTopLevelFun.kt");
      }
    }
  }
}
