from pathlib import PurePath
from tests.integration_tests.validation.conformance_suite_config import ConformanceSuiteConfig

TIMING = {f'formula/tests/{k}': v for k, v in {
    '10000 Formula/11021-Formula-StaticAnalysis-MissingConceptRule/11021_MissingConceptRule_testcase.xml': 0.296,
    '10000 Formula/11023-Formula-StaticAnalysis-MissingUnitConstructionRule/11023-MissingUnitRule_testcase.xml': 0.030,
    '10000 Formula/11025-Formula-StaticAnalysis-ConflictingAspectRules/11025-ConflictingAspectRules_testcase.xml': 0.039,
    '10000 Formula/11027-Formula-StaticAnalysis-MissingEntityIdentifierRule/11027-MissingEntityIdentifierRule_testcase.xml': 0.014,
    '10000 Formula/11028-Formula-StaticAnalysis-MissingPeriodRule/11028-MissingPeriodRule_testcase.xml': 0.014,
    '10000 Formula/11029-Formula-StaticAnalysis-incompleteConceptRule/11029-incompleteConceptRule_testcase.xml': 0.026,
    '10000 Formula/11041-Formula-StaticAnalysis-incompleteEntityIdentifierRule/11041-incompleteEntityIdentifierRule_testcase.xml': 0.044,
    '10000 Formula/11051-Formula-StaticAnalysis-incompletePeriodRule/11051-incompletePeriodRule_testcase.xml': 0.014,
    '10000 Formula/11062-Formula-StaticAnalysis-OCC-missingSAVForDimensionRule/11062-OCC-missingSAVForDimensionRule_testcase.xml': 0.043,
    '10000 Formula/11063-Formula-StaticAnalysis-MissingSAVForUnitRule/11063-missingSAVForUnitRule_testcase.xml': 0.014,
    '10000 Formula/11071-Formula-StaticAnalysis-badUsageOfDimensionRule/11071 Bad Usage Of Dimension Rules.xml': 0.054,
    '10000 Formula/11201-Formula-StaticAnalysis-unrecognisedAspectRule/11201-unrecognisedAspectRule_testcase.xml': 0.023,
    '10000 Formula/11202-Formula-StaticAnalysis-illegalUseOfUncoveredQName/11202-illegalUseOfUncoveredQName_testcase.xml': 0.014,
    '10000 Formula/11204-Formula-StaticAnalysis-sequenceSAVConflicts/11204-sequenceSAVConflicts_testcase.xml': 0.110,
    '10000 Formula/11205-Formula-StaticAnalysis-nonExistentSourceVariable/11205-nonExistentSourceVariable_testcase.xml': 0.052,
    '10000 Formula/11206-Formula-StaticAnalysis-bindEmptySourceVariable/11206-bindEmptySourceVariable_testcase.xml': 0.028,
    '10000 Formula/11207-Formula-StaticAnalysis-defaultAspectValueConflicts/11207-defaultAspectValueConflicts_testcase.xml': 0.011,
    '10000 Formula/12010-Formula-Processing-ConstructingFactValue/12010 Constructing fact value.xml': 0.547,
    '10000 Formula/12020-Formula-Processing-AspectRules/12020 Aspect Rules.xml': 0.224,
    '10000 Formula/12021-Formula-Processing-undefinedSAV/12021-undefinedSAV_testcase.xml': 0.057,
    '10000 Formula/12030-Formula-Processing-ConceptRules/12030 Concept Rules.xml': 0.046,
    '10000 Formula/12040-Formula-Processing-EntityRules/12040 Entity Rules.xml': 0.123,
    '10000 Formula/12050-Formula-Processing-PeriodRules/12050 Period Rules.xml': 0.354,
    '10000 Formula/12060-Formula-Processing-OCCRules/12060 OCC Rules.xml': 0.464,
    '10000 Formula/12061-Formula-Processing-DimensionRules/12061 Dimension Rules.xml': 1.970,
    '10000 Formula/12062-Formula-Processing-DimensionUncovered/12062 DimensionUncovered Rules.xml': 0.763,
    '10000 Formula/12070-Formula-Processing-UnitRules/12070 Unit Rules.xml': 0.303,
    '10000 Formula/12080-Formula-Processing-ConstructingAccuracy/12080 Constructing accuracy.xml': 0.142,
    '10000 Formula/14010-Formula-UseCases-BasicCalculation/14010 Use Cases Basic Calculation.xml': 0.053,
    '10000 Formula/14020-Formula-UseCases-Movement/14020 Use Cases Movement.xml': 0.069,
    '20000 Variables/21201-VariableStaticAnalysis-noCustomFunctionSignature/21201_noCustomFunctionSignature_testcase.xml': 0.045,
    '20000 Variables/21221-VariableStaticAnalysis-parameterNameClash/21221-parameterNameClash_testcase.xml': 0.012,
    '20000 Variables/21222-VariableStaticAnalysis-parameterCyclicDependencies/21222-parameterCyclicDependencies_testcase.xml': 0.024,
    '20000 Variables/21231-VariableStaticAnalysis-parameterTypeMismatch/21231-parameterTypeMismatch_testcase.xml': 0.040,
    '20000 Variables/21233-VariableStaticAnalysis-GeneralVariables/21233 General Variable Static Analysis.xml': 0.037,
    '20000 Variables/21241-VariableStaticAnalysis-FactVariables/21241 Fact Variable Static Analysis.xml': 0.013,
    '20000 Variables/21251-VariableStaticAnalysis-VariableSetDuplicateNames/21251 Variable Set Duplicate Names.xml': 0.090,
    '20000 Variables/21261-VariableStaticAnalysis-VariableFilterRelationships/21261 VariableFilter Relationship.xml': 0.041,
    '20000 Variables/21271-VariableStaticAnalysis-VariableSetFilterRelationships/21271 VariableSetFilter Relationship.xml': 0.040,
    '20000 Variables/21291-VariableStaticAnalysis-VariableSetRelationships/21291 VariableSet Relationship.xml': 0.039,
    '20000 Variables/21321-VariableStaticAnalysis-unkownAspectModel/21321-unkownAspectModel_testcase.xml': 0.022,
    '20000 Variables/21322-VariableStaticAnalysis-aspectModelMismatch/21322-aspectModelMismatch_testcase.xml': 0.040,
    '20000 Variables/21363-VariableStaticAnalysis-unresolvedDependency/21363-unresolvedDependency_testcase.xml': 0.035,
    '20000 Variables/21851-VariableStaticAnalysis-factVariableReferenceNotAllowed/21851-factVariableReferenceNotAllowed_testcase.xml': 0.027,
    '20000 Variables/21930-VariableStaticAnalysis-cyclicDependencies/21930-cyclicDependencies_testcase.xml': 0.014,
    '20000 Variables/22010-Variable-Processing-XPathUsage/22010 XPath Usage.xml': 0.978,
    '20000 Variables/22015-Variable-Processing-CustomFunctionSignatures/22015 Custom Function Signatures Processing.xml': 0.078,
    '20000 Variables/22020-Variable-Processing-Parameters/22020 Parameters.xml': 0.526,
    '20000 Variables/22030-Variable-Processing-GeneralVariables/22030 General Variables.xml': 0.262,
    '20000 Variables/22040-Variable-Processing-FactVariables/22040 Fact Variables.xml': 0.613,
    '20000 Variables/22050-Variable-Processing-Filters/22050 Filters.xml': 0.074,
    '20000 Variables/22060-Variable-Processing-VariableNames/22060 Variable Names.xml': 0.295,
    '20000 Variables/22070-Variable-Processing-VariableSetFilterRelationships/22070 Variable Set Filter Relationships.xml': 0.094,
    '20000 Variables/22090-Variable-Processing-VariableSetRelationships/22090 Variable Set Relationship.xml': 0.291,
    '20000 Variables/22140-Variable-Processing-Precondition/22140 Preconditions.xml': 0.236,
    '20000 Variables/22160-Variable-Processing-Evaluation/22160 Evaluation.xml': 0.139,
    '20000 Variables/22170-Variable-Processing-BindAsSequence/22170 Bind As Sequence.xml': 1.909,
    '20000 Variables/22180-Variable-Processing-BindEmpty/22180 Bind To Empty Sequence.xml': 1.486,
    '20000 Variables/23020-Variable-AspectTests-TypedDimension/23020 AspectTests TypedDimension.xml': 0.189,
    '20000 Variables/23030-Variable-AspectTests-DefaultDimension/23030 AspectTests DefaultDimension.xml': 0.028,
    '20000 Variables/23040-VariableStaticAnalysis-prohibitedNamespaceUsedForCustomFunction/23040-VariableStaticAnalysis-prohibitedNamespaceUsedForCustomFunction.xml': 0.018,
    '30000 Assertions/31110-ConsistencyAssertion-StaticAnalysis-radiusConflict/31110 Consistency Assertion Radius Conflict.xml': 0.015,
    '30000 Assertions/31130-ConsistencyAssertion-StaticAnalysis-variablesNotAllowed/31130 Consistency Assertion Variables Not Allowed.xml': 0.030,
    '30000 Assertions/31140-ConsistencyAssertion-StaticAnalysis-missingFormulae/31140 Consistency Assertion Missing Formulae.xml': 0.014,
    '30000 Assertions/31210-ConsistencyAssertion-Processing/31210 Consistency Assertion Processing.xml': 0.784,
    '30000 Assertions/31220-ConsistencyAssertion-Processing-Nil/31220 Consistency Assertion Nil Processing.xml': 0.362,
    '30000 Assertions/31230-ConsistencyAssertion-Processing-Accuracy/31230 Consistency Assertion Processing.xml': 0.666,
    '30000 Assertions/31410-ConsistencyAssertion-UseCases-BasicCalculation/31410 Use Cases Basic Calculation.xml': 0.128,
    '30000 Assertions/31420-ConsistencyAssertion-UseCases-DerivedRiskedCapital/31420 Use Case Derived Risked Capital.xml': 0.048,
    '30000 Assertions/31430-ConsistencyAssertion-UseCases-Pharmaceutical/31430 Use Cases Pharmaceutical.xml': 0.220,
    '30000 Assertions/31440-ConsistencyAssertion-UseCases-DimensionalWeightedAverage/31440 Use Cases Dimensional Weighted Average.xml': 0.086,
    '30000 Assertions/32110-ExistenceAssertion-StaticAnalysis-Element/32110 Existence Assertion Element Static Analysis .xml': 0.013,
    '30000 Assertions/32120-ExistenceAssertion-StaticAnalysis-Relationships/32120 Existence Assertion Relationship Static Analysis.xml': 0.014,
    '30000 Assertions/32210-ExistenceAssertion-Processing/32210 Existence Assertion Processing.xml': 0.115,
    '30000 Assertions/33210-ValueAssertion-Processing/33210 Value Assertion Processing.xml': 0.247,
    '30000 Assertions/34110-MultiAssertion-Processing/34110 Multi Assertion Processing.xml': 0.122,
    '40000 Filters/41210-BooleanFilter-Processing-And/41210 Boolean And Filter Processing.xml': 0.133,
    '40000 Filters/41220-BooleanFilter-Processing-Or/41220 Boolean Or Filter Processing.xml': 0.064,
    '40000 Filters/41221-BooleanFilter-Processing-NoChildren/41221 Boolean Filter Processing No Children.xml': 0.095,
    '40000 Filters/41230-BooleanFilter-Processing-FilterRelationships/41230 Boolean Filter Relationships Processing.xml': 0.050,
    '40000 Filters/42210-ConceptFilter-Processing-ConceptName/42210 ConceptFilter Processing ConceptName.xml': 0.137,
    '40000 Filters/42220-ConceptFilter-Processing-ConceptPeriodType/42220 ConceptFilter Processing ConceptPeriodType.xml': 0.080,
    '40000 Filters/42230-ConceptFilter-Processing-ConceptBalance/42230 ConceptFilter Processing ConceptBalance.xml': 0.134,
    '40000 Filters/42240-ConceptFilter-Processing-ConceptCustomAttribute/42240 ConceptFilter Processing ConceptCustomAttribute.xml': 0.121,
    '40000 Filters/42250-ConceptFilter-Processing-ConceptDataType/42250 ConceptFilter Processing ConceptDataType.xml': 0.139,
    '40000 Filters/42260-ConceptFilter-Processing-ConceptSubstitutionGroup/42260 ConceptFilter Processing ConceptSubstitutionGroup.xml': 0.184,
    '40000 Filters/43130-DimensionFilter-StaticAnalysis-DimensionMember Filter/43130 DimensionMember Filter.xml': 0.229,
    '40000 Filters/43210-DimensionFilter-Processing-ExplicitDimension/43210 Explicit dimension Filter Processing.xml': 0.680,
    '40000 Filters/43230-DimensionFilter-Processing-DomainMember/43230 Dimension Member Filter Processing.xml': 0.524,
    '40000 Filters/43240-DimensionFilter-Processing-TypedDimension/43240 Typed dimension Filter Processing.xml': 0.143,
    '40000 Filters/44210-EntityFilter-Processing-EntityIdentifier/44210 EntityFilter Processing EntityIdentifier.xml': 0.040,
    '40000 Filters/44220-EntityFilter-Processing-SpecificScheme/44220 EntityFilter Processing SpecificScheme.xml': 0.099,
    '40000 Filters/44230-EntityFilter-Processing-RegexpScheme/44230 EntityFilter Processing RegexpScheme.xml': 0.040,
    '40000 Filters/44240-EntityFilter-Processing-SpecificIdentifier/44240 EntityFilter Processing SpecificIdentifier.xml': 0.040,
    '40000 Filters/44250-EntityFilter-Processing-RegexpIdentifier/44250 EntityFilter Processing RegexpIdentifier.xml': 0.055,
    '40000 Filters/45210-GeneralFilter-Processing/45210 General Filter Processing.xml': 0.298,
    '40000 Filters/46210-ImplicitFilter-Processing-NonDimensional/46210 NonDimensional ImplicitFilter Processing.xml': 0.648,
    '40000 Filters/46220-ImplicitFilter-Processing-Dimensional/46220 Dimensional ImplicitFilter Processing.xml': 1.191,
    '40000 Filters/47200-NoMatchingFilter-Processing/47200 No MatchingFilter Processing.xml': 0.047,
    '40000 Filters/47201-ConceptMatchingFilter-Processing/47201 ConceptMatchingFilter Processing.xml': 0.154,
    '40000 Filters/47202-LocationMatchingFilter-Processing/47202 LocationMatchingFilter Processing.xml': 0.047,
    '40000 Filters/47203-UnitMatchingFilter-Processing/47203 UnitMatchingFilter Processing.xml': 0.049,
    '40000 Filters/47204-EntityIdentifierMatchingFilter-Processing/47204 EntityIdentifierMatchingFilter Processing.xml': 0.117,
    '40000 Filters/47205-PeriodMatchingFilter-Processing/47205 PeriodMatchingFilter Processing.xml': 0.047,
    '40000 Filters/47206-CompleteSegmentMatchingFilter-Processing/47206 CompleteSegmentMatchingFilter Processing.xml': 0.371,
    '40000 Filters/47207-NonXDTSegmentMatchingFilter-Processing/47207 NonXDTSegmentMatchingFilter Processing.xml': 0.458,
    '40000 Filters/47209-CompleteScenarioMatchingFilter-Processing/47209 CompleteScenarioMatchingFilter Processing.xml': 0.304,
    '40000 Filters/47210-NonXDTScenarioMatchingFilter-Processing/47210 NonXDTScenarioMatchingFilter Processing.xml': 0.457,
    '40000 Filters/47211-ScenarioDimensionMatchingFilter-Processing/47211 ScenarioDimensionMatchingFilter Processing.xml': 0.574,
    '40000 Filters/47212-DimensionMatchingFilter-Processing/47212 DimensionMatchingFilter Processing.xml': 0.552,
    '40000 Filters/47213-MatchingFilter-MatchVariableInappropriateValues-Processing/47213 MatchingFilter-MatchVariableInappropriateValues Processing.xml': 0.216,
    '40000 Filters/47221-ConceptMatchingFilter-Processing-Sequences/47221 ConceptMatchingFilter Processing Sequences.xml': 0.152,
    '40000 Filters/47222-LocationMatchingFilter-Processing-Sequences/47222 LocationMatchingFilter Processing Sequences.xml': 0.154,
    '40000 Filters/47223-UnitMatchingFilter-Processing-Sequences/47223 UnitMatchingFilter Processing Sequences.xml': 0.154,
    '40000 Filters/47224-EntityIdentifierMatchingFilter-Processing-Sequences/47224 EntityIdentifierMatchingFilter Processing Sequences.xml': 0.221,
    '40000 Filters/47225-PeriodMatchingFilter-Processing-Sequences/47225 PeriodMatchingFilter Processing Sequences.xml': 0.159,
    '40000 Filters/47226-CompleteSegmentMatchingFilter-Processing-Sequences/47226 CompleteSegmentMatchingFilter Processing Sequences.xml': 0.256,
    '40000 Filters/47227-NonXDTSegmentMatchingFilter-Processing-Sequences/47227 NonXDTSegmentMatchingFilter Processing Sequences.xml': 0.254,
    '40000 Filters/47229-CompleteScenarioMatchingFilter-Processing-Sequences/47229 CompleteScenarioMatchingFilter Processing Sequences.xml': 0.256,
    '40000 Filters/47230-NonXDTScenarioMatchingFilter-Processing-Sequences/47230 NonXDTScenarioMatchingFilter Processing Sequences.xml': 0.257,
    '40000 Filters/47231-ScenarioDimensionMatchingFilter-Processing-Sequences/47231 ScenarioDimensionMatchingFilter Processing Sequences.xml': 0.477,
    '40000 Filters/48210-PeriodFilter-Processing-Period/48210 PeriodFilter Processing Period.xml': 0.223,
    '40000 Filters/48220-PeriodFilter-Processing-PeriodStart/48220 PeriodFilter Processing PeriodStart.xml': 0.094,
    '40000 Filters/48230-PeriodFilter-Processing-PeriodEnd/48230 PeriodFilter Processing PeriodEnd.xml': 0.081,
    '40000 Filters/48240-PeriodFilter-Processing-PeriodInstant/48240 PeriodFilter Processing PeriodInstant.xml': 0.097,
    '40000 Filters/48250-PeriodFilter-Processing-Forever/48250 PeriodFilter Processing Forever.xml': 0.040,
    '40000 Filters/48260-PeriodFilter-Processing-InstantDuration/48260 PeriodFilter Processing InstantDuration.xml': 0.100,
    '40000 Filters/49210-RelativeFilter-Processing-Dimensional/49210 Relative Dimensional Filter Processing.xml': 0.240,
    '40000 Filters/49220-RelativeFilter-Processing-NonDimensional/49220 Relative NonDimensional Filter Processing.xml': 0.088,
    '40000 Filters/50210-SegmentScenarioFilter-Processing-Segment/50210 SegmentScenarioFilter Processing Segment.xml': 0.113,
    '40000 Filters/50220-SegmentScenarioFilter-Processing-Scenario/50220 SegmentScenarioFilter Processing Scenario.xml': 0.083,
    '40000 Filters/51210-TupleFilter-Processing-Parent/51210 Tuple Parent Processing.xml': 0.109,
    '40000 Filters/51220-TupleFilter-Processing-Ancestor/51220 Tuple Ancestor Processing.xml': 0.095,
    '40000 Filters/51230-TupleFilter-Processing-Sibling/51230 Tuple Sibling Processing.xml': 0.047,
    '40000 Filters/51240-TupleFilter-Processing-Location/51240 Tuple Location Processing.xml': 0.202,
    '40000 Filters/52210-UnitFilter-Processing-SingleMeasure/52210 Unit Single Measure Processing.xml': 0.124,
    '40000 Filters/52220-UnitFilter-Processing-General/52220 Unit General Measures Processing.xml': 0.161,
    '40000 Filters/53210-ValueFilter-Processing-Nil/53210 ValueFilter Processing Nil.xml': 0.040,
    '40000 Filters/53230-ValueFilter-Processing-Precision/53230 ValueFilter Processing Precision.xml': 0.084,
    '60000 Extensions/60100 GenericMessages-Processing/60100 GenericMessages Processing.xml': 0.153,
    '60000 Extensions/60110 AssertionSeverity-Processing/60110 Assertion Severity Processing.xml': 0.112,
    '60000 Extensions/60200 CustomXPathFuctions-Processing/60200 CustomXPathFunction Processing.xml': 1.085,
    '60000 Extensions/61000 AspectCoverFilter-Processing/61000 AspectCoverFilter Processing.xml': 0.684,
    '60000 Extensions/61100 ConceptRelationsFilter-Processing/61100 ConceptRelationsFilter Processing.xml': 0.496,
}.items()}

config = ConformanceSuiteConfig(
    approximate_relative_timing=TIMING,
    file='formula/tests/index.xml',
    info_url='https://specifications.xbrl.org/release-history-formula-1.0-formula-conf.html',
    local_filepath='formula.zip',
    name=PurePath(__file__).stem,
    network_or_cache_required=False,
    shards=4,
)
