/*
 * 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.kotlinx.serialization.runners;

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.kotlinx.serialization.TestGeneratorKt}. DO NOT MODIFY MANUALLY */
@SuppressWarnings("all")
public class SerializationFirLightTreeBlackBoxTestGenerated extends AbstractSerializationFirLightTreeBlackBoxTest {
  @Nested
  @TestMetadata("plugins/kotlinx-serialization/testData/boxIr")
  @TestDataPath("$PROJECT_ROOT")
  public class BoxIr {
    @Test
    @TestMetadata("allConstructorsAccessible.kt")
    public void testAllConstructorsAccessible() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/allConstructorsAccessible.kt");
    }

    @Test
    public void testAllFilesPresentInBoxIr() {
      KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/kotlinx-serialization/testData/boxIr"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
    }

    @Test
    @TestMetadata("annotationsOnFile.kt")
    public void testAnnotationsOnFile() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/annotationsOnFile.kt");
    }

    @Test
    @TestMetadata("annotationsOnFileExplicitArray.kt")
    public void testAnnotationsOnFileExplicitArray() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/annotationsOnFileExplicitArray.kt");
    }

    @Test
    @TestMetadata("caching.kt")
    public void testCaching() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/caching.kt");
    }

    @Test
    @TestMetadata("clashBetweenSerializableAndNonSerializableProperty.kt")
    public void testClashBetweenSerializableAndNonSerializableProperty() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/clashBetweenSerializableAndNonSerializableProperty.kt");
    }

    @Test
    @TestMetadata("classSerializerAsObject.kt")
    public void testClassSerializerAsObject() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/classSerializerAsObject.kt");
    }

    @Test
    @TestMetadata("constValInSerialName.kt")
    public void testConstValInSerialName() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/constValInSerialName.kt");
    }

    @Test
    @TestMetadata("contextualByDefault.kt")
    public void testContextualByDefault() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/contextualByDefault.kt");
    }

    @Test
    @TestMetadata("contextualFallback.kt")
    public void testContextualFallback() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/contextualFallback.kt");
    }

    @Test
    @TestMetadata("contextualWithTypeParameters.kt")
    public void testContextualWithTypeParameters() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/contextualWithTypeParameters.kt");
    }

    @Test
    @TestMetadata("delegatedInterface.kt")
    public void testDelegatedInterface() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/delegatedInterface.kt");
    }

    @Test
    @TestMetadata("delegatedProperty.kt")
    public void testDelegatedProperty() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/delegatedProperty.kt");
    }

    @Test
    @TestMetadata("enumsAreCached.kt")
    public void testEnumsAreCached() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/enumsAreCached.kt");
    }

    @Test
    @TestMetadata("expectActual.kt")
    public void testExpectActual() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/expectActual.kt");
    }

    @Test
    @TestMetadata("expectActualSealedClass.kt")
    public void testExpectActualSealedClass() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/expectActualSealedClass.kt");
    }

    @Test
    @TestMetadata("externalSerialierJava.kt")
    public void testExternalSerialierJava() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/externalSerialierJava.kt");
    }

    @Test
    @TestMetadata("externalSerializerForClassWithNonSerializableType.kt")
    public void testExternalSerializerForClassWithNonSerializableType() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/externalSerializerForClassWithNonSerializableType.kt");
    }

    @Test
    @TestMetadata("generatedClassifiersViaLibraryDependency.kt")
    public void testGeneratedClassifiersViaLibraryDependency() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/generatedClassifiersViaLibraryDependency.kt");
    }

    @Test
    @TestMetadata("genericBaseClassMultiple.kt")
    public void testGenericBaseClassMultiple() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/genericBaseClassMultiple.kt");
    }

    @Test
    @TestMetadata("genericBaseClassSimple.kt")
    public void testGenericBaseClassSimple() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/genericBaseClassSimple.kt");
    }

    @Test
    @TestMetadata("generics.kt")
    public void testGenerics() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/generics.kt");
    }

    @Test
    @TestMetadata("inlineClasses.kt")
    public void testInlineClasses() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/inlineClasses.kt");
    }

    @Test
    @TestMetadata("instantSerializer.kt")
    public void testInstantSerializer() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/instantSerializer.kt");
    }

    @Test
    @TestMetadata("interfaces.kt")
    public void testInterfaces() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/interfaces.kt");
    }

    @Test
    @TestMetadata("intrinsicAnnotations.kt")
    public void testIntrinsicAnnotations() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/intrinsicAnnotations.kt");
    }

    @Test
    @TestMetadata("intrinsicsBox.kt")
    public void testIntrinsicsBox() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/intrinsicsBox.kt");
    }

    @Test
    @TestMetadata("intrinsicsConsistency.kt")
    public void testIntrinsicsConsistency() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/intrinsicsConsistency.kt");
    }

    @Test
    @TestMetadata("intrinsicsNonReified.kt")
    public void testIntrinsicsNonReified() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/intrinsicsNonReified.kt");
    }

    @Test
    @TestMetadata("intrinsicsNullable.kt")
    public void testIntrinsicsNullable() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/intrinsicsNullable.kt");
    }

    @Test
    @TestMetadata("intrinsicsPolymorphicPriority.kt")
    public void testIntrinsicsPolymorphicPriority() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/intrinsicsPolymorphicPriority.kt");
    }

    @Test
    @TestMetadata("intrinsicsStarProjections.kt")
    public void testIntrinsicsStarProjections() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/intrinsicsStarProjections.kt");
    }

    @Test
    @TestMetadata("KeepGeneratedSerializer.kt")
    public void testKeepGeneratedSerializer() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/KeepGeneratedSerializer.kt");
    }

    @Test
    @TestMetadata("localSerializable.kt")
    public void testLocalSerializable() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/localSerializable.kt");
    }

    @Test
    @TestMetadata("metaSerializable.kt")
    public void testMetaSerializable() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/metaSerializable.kt");
    }

    @Test
    @TestMetadata("mpp.kt")
    public void testMpp() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/mpp.kt");
    }

    @Test
    @TestMetadata("mppInheritance.kt")
    public void testMppInheritance() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/mppInheritance.kt");
    }

    @Test
    @TestMetadata("multiFieldValueClasses.kt")
    public void testMultiFieldValueClasses() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/multiFieldValueClasses.kt");
    }

    @Test
    @TestMetadata("multiFileInheritanceJs.kt")
    public void testMultiFileInheritanceJs() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/multiFileInheritanceJs.kt");
    }

    @Test
    @TestMetadata("multimoduleInheritance.kt")
    public void testMultimoduleInheritance() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/multimoduleInheritance.kt");
    }

    @Test
    @TestMetadata("multipleGenericsPolymorphic.kt")
    public void testMultipleGenericsPolymorphic() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/multipleGenericsPolymorphic.kt");
    }

    @Test
    @TestMetadata("namedCompanions.kt")
    public void testNamedCompanions() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/namedCompanions.kt");
    }

    @Test
    @TestMetadata("polymorphic.kt")
    public void testPolymorphic() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/polymorphic.kt");
    }

    @Test
    @TestMetadata("polymorphicTypeParameter.kt")
    public void testPolymorphicTypeParameter() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/polymorphicTypeParameter.kt");
    }

    @Test
    @TestMetadata("privateCustomSerializer.kt")
    public void testPrivateCustomSerializer() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/privateCustomSerializer.kt");
    }

    @Test
    @TestMetadata("repeatableSerialInfo.kt")
    public void testRepeatableSerialInfo() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/repeatableSerialInfo.kt");
    }

    @Test
    @TestMetadata("sealedClassMultifile.kt")
    public void testSealedClassMultifile() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/sealedClassMultifile.kt");
    }

    @Test
    @TestMetadata("sealedInterfaces.kt")
    public void testSealedInterfaces() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/sealedInterfaces.kt");
    }

    @Test
    @TestMetadata("serialInfo.kt")
    public void testSerialInfo() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/serialInfo.kt");
    }

    @Test
    @TestMetadata("serializableCompanion.kt")
    public void testSerializableCompanion() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/serializableCompanion.kt");
    }

    @Test
    @TestMetadata("serializableFromAnotherModule.kt")
    public void testSerializableFromAnotherModule() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/serializableFromAnotherModule.kt");
    }

    @Test
    @TestMetadata("serializableFromAnotherModule_multipleFields.kt")
    public void testSerializableFromAnotherModule_multipleFields() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/serializableFromAnotherModule_multipleFields.kt");
    }

    @Test
    @TestMetadata("serializableOnPropertyType.kt")
    public void testSerializableOnPropertyType() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/serializableOnPropertyType.kt");
    }

    @Test
    @TestMetadata("serializerFactory.kt")
    public void testSerializerFactory() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/serializerFactory.kt");
    }

    @Test
    @TestMetadata("serializerFactoryInUserDefined.kt")
    public void testSerializerFactoryInUserDefined() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/serializerFactoryInUserDefined.kt");
    }

    @Test
    @TestMetadata("singleFileInheritanceJs.kt")
    public void testSingleFileInheritanceJs() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/singleFileInheritanceJs.kt");
    }

    @Test
    @TestMetadata("starProjections.kt")
    public void testStarProjections() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/starProjections.kt");
    }

    @Test
    @TestMetadata("typealiasesInContextualTest.kt")
    public void testTypealiasesInContextualTest() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/typealiasesInContextualTest.kt");
    }

    @Test
    @TestMetadata("typealiasesTest.kt")
    public void testTypealiasesTest() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/typealiasesTest.kt");
    }

    @Test
    @TestMetadata("useSerializersChain.kt")
    public void testUseSerializersChain() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/useSerializersChain.kt");
    }

    @Test
    @TestMetadata("userDefinedSerializerInCompanion.kt")
    public void testUserDefinedSerializerInCompanion() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/userDefinedSerializerInCompanion.kt");
    }

    @Test
    @TestMetadata("uuidSerializer.kt")
    public void testUuidSerializer() {
      runTest("plugins/kotlinx-serialization/testData/boxIr/uuidSerializer.kt");
    }
  }

  @Nested
  @TestMetadata("plugins/kotlinx-serialization/testData/firMembers")
  @TestDataPath("$PROJECT_ROOT")
  public class FirMembers {
    @Test
    @TestMetadata("abstractAndSealed.kt")
    public void testAbstractAndSealed() {
      runTest("plugins/kotlinx-serialization/testData/firMembers/abstractAndSealed.kt");
    }

    @Test
    public void testAllFilesPresentInFirMembers() {
      KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("plugins/kotlinx-serialization/testData/firMembers"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true);
    }

    @Test
    @TestMetadata("classWithCompanionObject.kt")
    public void testClassWithCompanionObject() {
      runTest("plugins/kotlinx-serialization/testData/firMembers/classWithCompanionObject.kt");
    }

    @Test
    @TestMetadata("classWithGenericParameters.kt")
    public void testClassWithGenericParameters() {
      runTest("plugins/kotlinx-serialization/testData/firMembers/classWithGenericParameters.kt");
    }

    @Test
    @TestMetadata("defaultProperties.kt")
    public void testDefaultProperties() {
      runTest("plugins/kotlinx-serialization/testData/firMembers/defaultProperties.kt");
    }

    @Test
    @TestMetadata("enums.kt")
    public void testEnums() {
      runTest("plugins/kotlinx-serialization/testData/firMembers/enums.kt");
    }

    @Test
    @TestMetadata("externalSerializers.kt")
    public void testExternalSerializers() {
      runTest("plugins/kotlinx-serialization/testData/firMembers/externalSerializers.kt");
    }

    @Test
    @TestMetadata("inlineClasses.kt")
    public void testInlineClasses() {
      runTest("plugins/kotlinx-serialization/testData/firMembers/inlineClasses.kt");
    }

    @Test
    @TestMetadata("metaSerializable.kt")
    public void testMetaSerializable() {
      runTest("plugins/kotlinx-serialization/testData/firMembers/metaSerializable.kt");
    }

    @Test
    @TestMetadata("multipleProperties.kt")
    public void testMultipleProperties() {
      runTest("plugins/kotlinx-serialization/testData/firMembers/multipleProperties.kt");
    }

    @Test
    @TestMetadata("privatePropertiesSerialization.kt")
    public void testPrivatePropertiesSerialization() {
      runTest("plugins/kotlinx-serialization/testData/firMembers/privatePropertiesSerialization.kt");
    }

    @Test
    @TestMetadata("serializableObject.kt")
    public void testSerializableObject() {
      runTest("plugins/kotlinx-serialization/testData/firMembers/serializableObject.kt");
    }

    @Test
    @TestMetadata("serializableWith.kt")
    public void testSerializableWith() {
      runTest("plugins/kotlinx-serialization/testData/firMembers/serializableWith.kt");
    }

    @Test
    @TestMetadata("serializableWithCompanion.kt")
    public void testSerializableWithCompanion() {
      runTest("plugins/kotlinx-serialization/testData/firMembers/serializableWithCompanion.kt");
    }

    @Test
    @TestMetadata("serializerInLocalClass.kt")
    public void testSerializerInLocalClass() {
      runTest("plugins/kotlinx-serialization/testData/firMembers/serializerInLocalClass.kt");
    }

    @Test
    @TestMetadata("serializerViaCompanion.kt")
    public void testSerializerViaCompanion() {
      runTest("plugins/kotlinx-serialization/testData/firMembers/serializerViaCompanion.kt");
    }
  }
}
