# =============================================================
# USDA Soil Taxonomy 13ed -- Mollisols Subgroups -- Cap 12
# =============================================================
# Cobertura cientifica focada (~115 SGs).
# Comuns: Lithic, Aquic, Pachic, Vertic, Andic, Vermic, Cumulic,
#         Aridic, Calcic, Sodic, Typic.
# =============================================================

subgroups:

  # ====== ALBOLLS ======

  "IAA":  # Natralbolls (3)
    - code: "IAAA"
      name: "Aquic Natralbolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
    - code: "IAAB"
      name: "Vertic Natralbolls"
      tests:
        all_of:
          - vertic_subgroup_usda: {}
    - code: "IAAC"
      name: "Typic Natralbolls"
      tests:
        default: true

  "IAB":  # Argialbolls (4)
    - code: "IABA"
      name: "Aquic Argialbolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
    - code: "IABB"
      name: "Pachic Argialbolls"
      tests:
        all_of:
          - pachic_subgroup_usda: {}
    - code: "IABC"
      name: "Vertic Argialbolls"
      tests:
        all_of:
          - vertic_subgroup_usda: {}
    - code: "IABE"
      name: "Aquandic Argialbolls"
      tests:
        all_of:
          - aquandic_subgroup_usda: {}
    - code: "IABD"
      name: "Typic Argialbolls"
      tests:
        default: true

  # ====== AQUOLLS ======

  "IBA":  # Cryaquolls (4)
    - code: "IBAA"
      name: "Lithic Cryaquolls"
      tests:
        all_of:
          - lithic_contact_usda: { max_top_cm: 50 }
    - code: "IBAB"
      name: "Vertic Cryaquolls"
      tests:
        all_of:
          - vertic_subgroup_usda: {}
    - code: "IBAC"
      name: "Cumulic Cryaquolls"
      tests:
        all_of:
          - cumulic_subgroup_usda: {}
    - code: "IBAE"
      name: "Histic Cryaquolls"
      tests:
        all_of:
          - histic_subgroup_usda: {}
    - code: "IBAF"
      name: "Aquandic Cryaquolls"
      tests:
        all_of:
          - aquandic_subgroup_usda: {}
    - code: "IBAG"
      name: "Argic Cryaquolls"
      tests:
        all_of:
          - argic_mollisol_usda: {}
    - code: "IBAH"
      name: "Calcic Cryaquolls"
      tests:
        all_of:
          - calcic_subgroup_usda: {}
    - code: "IBAI"
      name: "Thapto-Humic Cryaquolls"
      tests:
        all_of:
          - thapto_humic_usda: {}
    - code: "IBAD"
      name: "Typic Cryaquolls"
      tests:
        default: true

  "IBB":  # Duraquolls (3)
    - code: "IBBA"
      name: "Vertic Duraquolls"
      tests:
        all_of:
          - vertic_subgroup_usda: {}
    - code: "IBBB"
      name: "Argic Duraquolls"
      tests:
        all_of:
          - argic_mollisol_usda: {}
    - code: "IBBD"
      name: "Natric Duraquolls"
      tests:
        all_of:
          - natric_horizon_usda: {}
    - code: "IBBC"
      name: "Typic Duraquolls"
      tests:
        default: true

  "IBC":  # Natraquolls (3)
    - code: "IBCA"
      name: "Vertic Natraquolls"
      tests:
        all_of:
          - vertic_subgroup_usda: {}
    - code: "IBCB"
      name: "Salic Natraquolls"
      tests:
        all_of:
          - salic_subgroup_usda: {}
    - code: "IBCD"
      name: "Petrocalcic Natraquolls"
      tests:
        all_of:
          - petrocalcic_subgroup_usda: {}
    - code: "IBCC"
      name: "Typic Natraquolls"
      tests:
        default: true

  "IBD":  # Calciaquolls (3)
    - code: "IBDA"
      name: "Vertic Calciaquolls"
      tests:
        all_of:
          - vertic_subgroup_usda: {}
    - code: "IBDB"
      name: "Petrocalcic Calciaquolls"
      tests:
        all_of:
          - petrocalcic_subgroup_usda: {}
    - code: "IBDC"
      name: "Typic Calciaquolls"
      tests:
        default: true

  "IBE":  # Argiaquolls (4)
    - code: "IBEA"
      name: "Lithic Argiaquolls"
      tests:
        all_of:
          - lithic_contact_usda: { max_top_cm: 50 }
    - code: "IBEB"
      name: "Vertic Argiaquolls"
      tests:
        all_of:
          - vertic_subgroup_usda: {}
    - code: "IBEC"
      name: "Pachic Argiaquolls"
      tests:
        all_of:
          - pachic_subgroup_usda: {}
    - code: "IBEE"
      name: "Arenic Argiaquolls"
      tests:
        all_of:
          - arenic_subgroup_usda: {}
    - code: "IBEF"
      name: "Grossarenic Argiaquolls"
      tests:
        all_of:
          - grossarenic_subgroup_usda: {}
    - code: "IBED"
      name: "Typic Argiaquolls"
      tests:
        default: true

  "IBF":  # Epiaquolls (4)
    - code: "IBFA"
      name: "Lithic Epiaquolls"
      tests:
        all_of:
          - lithic_contact_usda: { max_top_cm: 50 }
    - code: "IBFB"
      name: "Vertic Epiaquolls"
      tests:
        all_of:
          - vertic_subgroup_usda: {}
    - code: "IBFC"
      name: "Cumulic Epiaquolls"
      tests:
        all_of:
          - cumulic_subgroup_usda: {}
    - code: "IBFE"
      name: "Histic Epiaquolls"
      tests:
        all_of:
          - histic_subgroup_usda: {}
    - code: "IBFF"
      name: "Aquandic Epiaquolls"
      tests:
        all_of:
          - aquandic_subgroup_usda: {}
    - code: "IBFG"
      name: "Duric Epiaquolls"
      tests:
        all_of:
          - duric_subgroup_usda: {}
    - code: "IBFH"
      name: "Thapto-Humic Epiaquolls"
      tests:
        all_of:
          - thapto_humic_usda: {}
    - code: "IBFI"
      name: "Fluvaquentic Epiaquolls"
      tests:
        all_of:
          - fluvaquentic_usda: {}
    - code: "IBFD"
      name: "Typic Epiaquolls"
      tests:
        default: true

  "IBG":  # Endoaquolls (5)
    - code: "IBGA"
      name: "Lithic Endoaquolls"
      tests:
        all_of:
          - lithic_contact_usda: { max_top_cm: 50 }
    - code: "IBGB"
      name: "Vertic Endoaquolls"
      tests:
        all_of:
          - vertic_subgroup_usda: {}
    - code: "IBGC"
      name: "Cumulic Endoaquolls"
      tests:
        all_of:
          - cumulic_subgroup_usda: {}
    - code: "IBGD"
      name: "Calcic Endoaquolls"
      tests:
        all_of:
          - calcic_subgroup_usda: {}
    - code: "IBGF"
      name: "Histic Endoaquolls"
      tests:
        all_of:
          - histic_subgroup_usda: {}
    - code: "IBGG"
      name: "Aquandic Endoaquolls"
      tests:
        all_of:
          - aquandic_subgroup_usda: {}
    - code: "IBGH"
      name: "Duric Endoaquolls"
      tests:
        all_of:
          - duric_subgroup_usda: {}
    - code: "IBGI"
      name: "Thapto-Humic Endoaquolls"
      tests:
        all_of:
          - thapto_humic_usda: {}
    - code: "IBGJ"
      name: "Fluvaquentic Endoaquolls"
      tests:
        all_of:
          - fluvaquentic_usda: {}
    - code: "IBGE"
      name: "Typic Endoaquolls"
      tests:
        default: true

  # ====== RENDOLLS ======

  "ICA":  # Cryrendolls (2)
    - code: "ICAA"
      name: "Lithic Cryrendolls"
      tests:
        all_of:
          - lithic_contact_usda: { max_top_cm: 50 }
    - code: "ICAB"
      name: "Typic Cryrendolls"
      tests:
        default: true

  "ICB":  # Haprendolls (3)
    - code: "ICBA"
      name: "Lithic Haprendolls"
      tests:
        all_of:
          - lithic_contact_usda: { max_top_cm: 50 }
    - code: "ICBB"
      name: "Aquic Haprendolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
    - code: "ICBD"
      name: "Entic Haprendolls"
      tests:
        all_of:
          - entic_subgroup_usda: {}
    - code: "ICBC"
      name: "Typic Haprendolls"
      tests:
        default: true

  # ====== GELOLLS ======

  "IDA":  # Haplogelolls (2)
    - code: "IDAA"
      name: "Lithic Haplogelolls"
      tests:
        all_of:
          - lithic_contact_usda: { max_top_cm: 50 }
    - code: "IDAC"
      name: "Andic Haplogelolls"
      tests:
        all_of:
          - andic_subgroup_usda: {}
    - code: "IDAD"
      name: "Aquic Haplogelolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
    - code: "IDAE"
      name: "Oxyaquic Haplogelolls"
      tests:
        all_of:
          - oxyaquic_subgroup_usda: {}
    - code: "IDAF"
      name: "Turbic Haplogelolls"
      tests:
        all_of:
          - turbic_subgroup_usda: {}
    - code: "IDAG"
      name: "Cumulic Haplogelolls"
      tests:
        all_of:
          - cumulic_subgroup_usda: {}
    - code: "IDAH"
      name: "Pachic Haplogelolls"
      tests:
        all_of:
          - pachic_subgroup_usda: {}
    - code: "IDAB"
      name: "Typic Haplogelolls"
      tests:
        default: true

  # ====== CRYOLLS ======

  "IEA":  # Duricryolls (3)
    - code: "IEAA"
      name: "Argic Duricryolls"
      tests:
        all_of:
          - argic_mollisol_usda: {}
    - code: "IEAB"
      name: "Vertic Duricryolls"
      tests:
        all_of:
          - vertic_subgroup_usda: {}
    - code: "IEAD"
      name: "Calcic Duricryolls"
      tests:
        all_of:
          - calcic_subgroup_usda: {}
    - code: "IEAC"
      name: "Typic Duricryolls"
      tests:
        default: true

  "IEB":  # Natricryolls (3)
    - code: "IEBA"
      name: "Vertic Natricryolls"
      tests:
        all_of:
          - vertic_subgroup_usda: {}
    - code: "IEBB"
      name: "Aquic Natricryolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
    - code: "IEBC"
      name: "Typic Natricryolls"
      tests:
        default: true

  "IEC":  # Palecryolls (3)
    - code: "IECA"
      name: "Vertic Palecryolls"
      tests:
        all_of:
          - vertic_subgroup_usda: {}
    - code: "IECB"
      name: "Pachic Palecryolls"
      tests:
        all_of:
          - pachic_subgroup_usda: {}
    - code: "IECD"
      name: "Aquic Palecryolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
    - code: "IECE"
      name: "Oxyaquic Palecryolls"
      tests:
        all_of:
          - oxyaquic_subgroup_usda: {}
    - code: "IECC"
      name: "Typic Palecryolls"
      tests:
        default: true

  "IED":  # Argicryolls (4)
    - code: "IEDA"
      name: "Lithic Argicryolls"
      tests:
        all_of:
          - lithic_contact_usda: { max_top_cm: 50 }
    - code: "IEDB"
      name: "Vertic Argicryolls"
      tests:
        all_of:
          - vertic_subgroup_usda: {}
    - code: "IEDC"
      name: "Pachic Argicryolls"
      tests:
        all_of:
          - pachic_subgroup_usda: {}
    - code: "IEDE"
      name: "Andic Argicryolls"
      tests:
        all_of:
          - andic_subgroup_usda: {}
    - code: "IEDF"
      name: "Vitrandic Argicryolls"
      tests:
        all_of:
          - vitrandic_subgroup_usda: {}
    - code: "IEDG"
      name: "Aquic Argicryolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
    - code: "IEDH"
      name: "Oxyaquic Argicryolls"
      tests:
        all_of:
          - oxyaquic_subgroup_usda: {}
    - code: "IEDI"
      name: "Calcic Pachic Argicryolls"
      tests:
        all_of:
          - calcic_subgroup_usda: {}
          - pachic_subgroup_usda: {}
    - code: "IEDJ"
      name: "Calcic Argicryolls"
      tests:
        all_of:
          - calcic_subgroup_usda: {}
    - code: "IEDD"
      name: "Typic Argicryolls"
      tests:
        default: true

  "IEE":  # Calcicryolls (3)
    - code: "IEEA"
      name: "Lithic Calcicryolls"
      tests:
        all_of:
          - lithic_contact_usda: { max_top_cm: 50 }
    - code: "IEEB"
      name: "Petrocalcic Calcicryolls"
      tests:
        all_of:
          - petrocalcic_subgroup_usda: {}
    - code: "IEED"
      name: "Vitrandic Calcicryolls"
      tests:
        all_of:
          - vitrandic_subgroup_usda: {}
    - code: "IEEE"
      name: "Pachic Calcicryolls"
      tests:
        all_of:
          - pachic_subgroup_usda: {}
    - code: "IEEC"
      name: "Typic Calcicryolls"
      tests:
        default: true

  "IEF":  # Haplocryolls (5)
    - code: "IEFA"
      name: "Lithic Haplocryolls"
      tests:
        all_of:
          - lithic_contact_usda: { max_top_cm: 50 }
    - code: "IEFB"
      name: "Aquic Haplocryolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
    - code: "IEFC"
      name: "Pachic Haplocryolls"
      tests:
        all_of:
          - pachic_subgroup_usda: {}
    - code: "IEFD"
      name: "Vertic Haplocryolls"
      tests:
        all_of:
          - vertic_subgroup_usda: {}
    - code: "IEFF"
      name: "Andic Haplocryolls"
      tests:
        all_of:
          - andic_subgroup_usda: {}
    - code: "IEFG"
      name: "Vitrandic Haplocryolls"
      tests:
        all_of:
          - vitrandic_subgroup_usda: {}
    - code: "IEFH"
      name: "Aquic Cumulic Haplocryolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
          - cumulic_subgroup_usda: {}
    - code: "IEFI"
      name: "Cumulic Haplocryolls"
      tests:
        all_of:
          - cumulic_subgroup_usda: {}
    - code: "IEFJ"
      name: "Thapto-Humic Haplocryolls"
      tests:
        all_of:
          - thapto_humic_usda: {}
    - code: "IEFK"
      name: "Fluvaquentic Haplocryolls"
      tests:
        all_of:
          - fluvaquentic_usda: {}
    - code: "IEFL"
      name: "Oxyaquic Haplocryolls"
      tests:
        all_of:
          - oxyaquic_subgroup_usda: {}
    - code: "IEFM"
      name: "Calcic Pachic Haplocryolls"
      tests:
        all_of:
          - calcic_subgroup_usda: {}
          - pachic_subgroup_usda: {}
    - code: "IEFN"
      name: "Calcic Haplocryolls"
      tests:
        all_of:
          - calcic_subgroup_usda: {}
    - code: "IEFE"
      name: "Typic Haplocryolls"
      tests:
        default: true

  # ====== XEROLLS ======

  "IFA":  # Durixerolls (3)
    - code: "IFAA"
      name: "Argic Durixerolls"
      tests:
        all_of:
          - argic_mollisol_usda: {}
    - code: "IFAB"
      name: "Vertic Durixerolls"
      tests:
        all_of:
          - vertic_subgroup_usda: {}
    - code: "IFAD"
      name: "Vitrandic Durixerolls"
      tests:
        all_of:
          - vitrandic_subgroup_usda: {}
    - code: "IFAE"
      name: "Aquic Durixerolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
    - code: "IFAF"
      name: "Haplic Durixerolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
    - code: "IFAC"
      name: "Typic Durixerolls"
      tests:
        default: true

  "IFB":  # Natrixerolls (3)
    - code: "IFBA"
      name: "Aquic Natrixerolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
    - code: "IFBB"
      name: "Vertic Natrixerolls"
      tests:
        all_of:
          - vertic_subgroup_usda: {}
    - code: "IFBD"
      name: "Aquic Duric Natrixerolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
          - duric_subgroup_usda: {}
    - code: "IFBE"
      name: "Aridic Natrixerolls"
      tests:
        all_of:
          - smr_aridic_usda: {}
    - code: "IFBF"
      name: "Duric Natrixerolls"
      tests:
        all_of:
          - duric_subgroup_usda: {}
    - code: "IFBC"
      name: "Typic Natrixerolls"
      tests:
        default: true

  "IFC":  # Palexerolls (4)
    - code: "IFCA"
      name: "Lithic Palexerolls"
      tests:
        all_of:
          - lithic_contact_usda: { max_top_cm: 50 }
    - code: "IFCB"
      name: "Vertic Palexerolls"
      tests:
        all_of:
          - vertic_subgroup_usda: {}
    - code: "IFCC"
      name: "Pachic Palexerolls"
      tests:
        all_of:
          - pachic_subgroup_usda: {}
    - code: "IFCE"
      name: "Vitrandic Palexerolls"
      tests:
        all_of:
          - vitrandic_subgroup_usda: {}
    - code: "IFCF"
      name: "Aquic Palexerolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
    - code: "IFCG"
      name: "Duric Palexerolls"
      tests:
        all_of:
          - duric_subgroup_usda: {}
    - code: "IFCH"
      name: "Aridic Palexerolls"
      tests:
        all_of:
          - smr_aridic_usda: {}
    - code: "IFCI"
      name: "Petrocalcic Palexerolls"
      tests:
        all_of:
          - petrocalcic_subgroup_usda: {}
    - code: "IFCJ"
      name: "Ultic Palexerolls"
      tests:
        all_of:
          - ultic_subgroup_usda: {}
    - code: "IFCK"
      name: "Haplic Palexerolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
    - code: "IFCD"
      name: "Typic Palexerolls"
      tests:
        default: true

  "IFD":  # Calcixerolls (4)
    - code: "IFDA"
      name: "Lithic Calcixerolls"
      tests:
        all_of:
          - lithic_contact_usda: { max_top_cm: 50 }
    - code: "IFDB"
      name: "Petrocalcic Calcixerolls"
      tests:
        all_of:
          - petrocalcic_subgroup_usda: {}
    - code: "IFDC"
      name: "Aridic Calcixerolls"
      tests:
        all_of:
          - smr_aridic_usda: {}
    - code: "IFDE"
      name: "Aridic Lithic Calcixerolls"
      tests:
        all_of:
          - smr_aridic_usda: {}
          - lithic_contact_usda: { max_top_cm: 50 }
    - code: "IFDF"
      name: "Aquic Calcixerolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
    - code: "IFDG"
      name: "Oxyaquic Calcixerolls"
      tests:
        all_of:
          - oxyaquic_subgroup_usda: {}
    - code: "IFDH"
      name: "Pachic Calcixerolls"
      tests:
        all_of:
          - pachic_subgroup_usda: {}
    - code: "IFDI"
      name: "Vitrandic Calcixerolls"
      tests:
        all_of:
          - vitrandic_subgroup_usda: {}
    - code: "IFDD"
      name: "Typic Calcixerolls"
      tests:
        default: true

  "IFE":  # Argixerolls (5)
    - code: "IFEA"
      name: "Lithic Argixerolls"
      tests:
        all_of:
          - lithic_contact_usda: { max_top_cm: 50 }
    - code: "IFEB"
      name: "Aquic Argixerolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
    - code: "IFEC"
      name: "Vertic Argixerolls"
      tests:
        all_of:
          - vertic_subgroup_usda: {}
    - code: "IFED"
      name: "Pachic Argixerolls"
      tests:
        all_of:
          - pachic_subgroup_usda: {}
    - code: "IFEF"
      name: "Aridic Lithic Argixerolls"
      tests:
        all_of:
          - smr_aridic_usda: {}
          - lithic_contact_usda: { max_top_cm: 50 }
    - code: "IFEG"
      name: "Lithic Ultic Argixerolls"
      tests:
        all_of:
          - lithic_contact_usda: { max_top_cm: 50 }
          - ultic_subgroup_usda: {}
    - code: "IFEH"
      name: "Andic Argixerolls"
      tests:
        all_of:
          - andic_subgroup_usda: {}
    - code: "IFEI"
      name: "Vitrandic Argixerolls"
      tests:
        all_of:
          - vitrandic_subgroup_usda: {}
    - code: "IFEJ"
      name: "Oxyaquic Argixerolls"
      tests:
        all_of:
          - oxyaquic_subgroup_usda: {}
    - code: "IFEK"
      name: "Calcic Pachic Argixerolls"
      tests:
        all_of:
          - calcic_subgroup_usda: {}
          - pachic_subgroup_usda: {}
    - code: "IFEL"
      name: "Pachic Ultic Argixerolls"
      tests:
        all_of:
          - pachic_subgroup_usda: {}
          - ultic_subgroup_usda: {}
    - code: "IFEM"
      name: "Duric Argixerolls"
      tests:
        all_of:
          - duric_subgroup_usda: {}
    - code: "IFEN"
      name: "Aridic Argixerolls"
      tests:
        all_of:
          - smr_aridic_usda: {}
    - code: "IFEO"
      name: "Calcic Argixerolls"
      tests:
        all_of:
          - calcic_subgroup_usda: {}
    - code: "IFEP"
      name: "Ultic Argixerolls"
      tests:
        all_of:
          - ultic_subgroup_usda: {}
    - code: "IFEE"
      name: "Typic Argixerolls"
      tests:
        default: true

  "IFF":  # Haploxerolls (5)
    - code: "IFFA"
      name: "Lithic Haploxerolls"
      tests:
        all_of:
          - lithic_contact_usda: { max_top_cm: 50 }
    - code: "IFFB"
      name: "Aquic Haploxerolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
    - code: "IFFC"
      name: "Vertic Haploxerolls"
      tests:
        all_of:
          - vertic_subgroup_usda: {}
    - code: "IFFD"
      name: "Pachic Haploxerolls"
      tests:
        all_of:
          - pachic_subgroup_usda: {}
    - code: "IFFF"
      name: "Aridic Lithic Haploxerolls"
      tests:
        all_of:
          - smr_aridic_usda: {}
          - lithic_contact_usda: { max_top_cm: 50 }
    - code: "IFFG"
      name: "Lithic Ultic Haploxerolls"
      tests:
        all_of:
          - lithic_contact_usda: { max_top_cm: 50 }
          - ultic_subgroup_usda: {}
    - code: "IFFH"
      name: "Andic Haploxerolls"
      tests:
        all_of:
          - andic_subgroup_usda: {}
    - code: "IFFI"
      name: "Vitrandic Haploxerolls"
      tests:
        all_of:
          - vitrandic_subgroup_usda: {}
    - code: "IFFJ"
      name: "Aquic Cumulic Haploxerolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
          - cumulic_subgroup_usda: {}
    - code: "IFFK"
      name: "Cumulic Ultic Haploxerolls"
      tests:
        all_of:
          - cumulic_subgroup_usda: {}
          - ultic_subgroup_usda: {}
    - code: "IFFL"
      name: "Cumulic Haploxerolls"
      tests:
        all_of:
          - cumulic_subgroup_usda: {}
    - code: "IFFM"
      name: "Thapto-Humic Haploxerolls"
      tests:
        all_of:
          - thapto_humic_usda: {}
    - code: "IFFN"
      name: "Fluvaquentic Haploxerolls"
      tests:
        all_of:
          - fluvaquentic_usda: {}
    - code: "IFFO"
      name: "Aquic Duric Haploxerolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
          - duric_subgroup_usda: {}
    - code: "IFFP"
      name: "Oxyaquic Haploxerolls"
      tests:
        all_of:
          - oxyaquic_subgroup_usda: {}
    - code: "IFFQ"
      name: "Calcic Pachic Haploxerolls"
      tests:
        all_of:
          - calcic_subgroup_usda: {}
          - pachic_subgroup_usda: {}
    - code: "IFFR"
      name: "Pachic Ultic Haploxerolls"
      tests:
        all_of:
          - pachic_subgroup_usda: {}
          - ultic_subgroup_usda: {}
    - code: "IFFS"
      name: "Aridic Haploxerolls"
      tests:
        all_of:
          - smr_aridic_usda: {}
    - code: "IFFE"
      name: "Typic Haploxerolls"
      tests:
        default: true

  # ====== USTOLLS ======

  "IGA":  # Durustolls (3)
    - code: "IGAA"
      name: "Argic Durustolls"
      tests:
        all_of:
          - argic_mollisol_usda: {}
    - code: "IGAB"
      name: "Vertic Durustolls"
      tests:
        all_of:
          - vertic_subgroup_usda: {}
    - code: "IGAD"
      name: "Natric Durustolls"
      tests:
        all_of:
          - natric_horizon_usda: {}
    - code: "IGAE"
      name: "Entic Durustolls"
      tests:
        all_of:
          - entic_subgroup_usda: {}
    - code: "IGAF"
      name: "Haplic Durustolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
    - code: "IGAC"
      name: "Typic Durustolls"
      tests:
        default: true

  "IGB":  # Natrustolls (3)
    - code: "IGBA"
      name: "Aquic Natrustolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
    - code: "IGBB"
      name: "Vertic Natrustolls"
      tests:
        all_of:
          - vertic_subgroup_usda: {}
    - code: "IGBD"
      name: "Aridic Natrustolls"
      tests:
        all_of:
          - smr_aridic_usda: {}
    - code: "IGBE"
      name: "Duric Natrustolls"
      tests:
        all_of:
          - duric_subgroup_usda: {}
    - code: "IGBC"
      name: "Typic Natrustolls"
      tests:
        default: true

  "IGC":  # Calciustolls (4)
    - code: "IGCA"
      name: "Lithic Calciustolls"
      tests:
        all_of:
          - lithic_contact_usda: { max_top_cm: 50 }
    - code: "IGCB"
      name: "Petrocalcic Calciustolls"
      tests:
        all_of:
          - petrocalcic_subgroup_usda: {}
    - code: "IGCC"
      name: "Aridic Calciustolls"
      tests:
        all_of:
          - smr_aridic_usda: {}
    - code: "IGCE"
      name: "Lithic Petrocalcic Calciustolls"
      tests:
        all_of:
          - lithic_contact_usda: { max_top_cm: 50 }
          - petrocalcic_subgroup_usda: {}
    - code: "IGCF"
      name: "Aquic Calciustolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
    - code: "IGCG"
      name: "Oxyaquic Calciustolls"
      tests:
        all_of:
          - oxyaquic_subgroup_usda: {}
    - code: "IGCH"
      name: "Pachic Calciustolls"
      tests:
        all_of:
          - pachic_subgroup_usda: {}
    - { code: "IGCI", name: "Gypsic Calciustolls", tests: { all_of: [{gypsic_subgroup_usda: {}}] } }
    - code: "IGCD"
      name: "Typic Calciustolls"
      tests:
        default: true

  "IGD":  # Paleustolls (5)
    - code: "IGDA"
      name: "Lithic Paleustolls"
      tests:
        all_of:
          - lithic_contact_usda: { max_top_cm: 50 }
    - code: "IGDB"
      name: "Vertic Paleustolls"
      tests:
        all_of:
          - vertic_subgroup_usda: {}
    - code: "IGDC"
      name: "Pachic Paleustolls"
      tests:
        all_of:
          - pachic_subgroup_usda: {}
    - code: "IGDD"
      name: "Calcic Paleustolls"
      tests:
        all_of:
          - calcic_subgroup_usda: {}
    - code: "IGDF"
      name: "Aquic Paleustolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
    - code: "IGDG"
      name: "Petrocalcic Paleustolls"
      tests:
        all_of:
          - petrocalcic_subgroup_usda: {}
    - code: "IGDH"
      name: "Aridic Paleustolls"
      tests:
        all_of:
          - smr_aridic_usda: {}
    - code: "IGDI"
      name: "Entic Paleustolls"
      tests:
        all_of:
          - entic_subgroup_usda: {}
    - code: "IGDE"
      name: "Typic Paleustolls"
      tests:
        default: true

  "IGE":  # Argiustolls (5)
    - code: "IGEA"
      name: "Lithic Argiustolls"
      tests:
        all_of:
          - lithic_contact_usda: { max_top_cm: 50 }
    - code: "IGEB"
      name: "Aquic Argiustolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
    - code: "IGEC"
      name: "Vertic Argiustolls"
      tests:
        all_of:
          - vertic_subgroup_usda: {}
    - code: "IGED"
      name: "Pachic Argiustolls"
      tests:
        all_of:
          - pachic_subgroup_usda: {}
    - code: "IGEF"
      name: "Aridic Lithic Argiustolls"
      tests:
        all_of:
          - smr_aridic_usda: {}
          - lithic_contact_usda: { max_top_cm: 50 }
    - code: "IGEG"
      name: "Andic Argiustolls"
      tests:
        all_of:
          - andic_subgroup_usda: {}
    - code: "IGEH"
      name: "Vitrandic Argiustolls"
      tests:
        all_of:
          - vitrandic_subgroup_usda: {}
    - code: "IGEI"
      name: "Oxyaquic Argiustolls"
      tests:
        all_of:
          - oxyaquic_subgroup_usda: {}
    - code: "IGEJ"
      name: "Aridic Argiustolls"
      tests:
        all_of:
          - smr_aridic_usda: {}
    - code: "IGEK"
      name: "Duric Argiustolls"
      tests:
        all_of:
          - duric_subgroup_usda: {}
    - code: "IGEE"
      name: "Typic Argiustolls"
      tests:
        default: true

  "IGF":  # Vermustolls (3)
    - code: "IGFA"
      name: "Lithic Vermustolls"
      tests:
        all_of:
          - lithic_contact_usda: { max_top_cm: 50 }
    - code: "IGFB"
      name: "Pachic Vermustolls"
      tests:
        all_of:
          - pachic_subgroup_usda: {}
    - code: "IGFD"
      name: "Aquic Vermustolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
    - code: "IGFE"
      name: "Entic Vermustolls"
      tests:
        all_of:
          - entic_subgroup_usda: {}
    - code: "IGFC"
      name: "Typic Vermustolls"
      tests:
        default: true

  "IGG":  # Haplustolls (6)
    - code: "IGGA"
      name: "Lithic Haplustolls"
      tests:
        all_of:
          - lithic_contact_usda: { max_top_cm: 50 }
    - code: "IGGB"
      name: "Aquic Haplustolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
    - code: "IGGC"
      name: "Vertic Haplustolls"
      tests:
        all_of:
          - vertic_subgroup_usda: {}
    - code: "IGGD"
      name: "Pachic Haplustolls"
      tests:
        all_of:
          - pachic_subgroup_usda: {}
    - code: "IGGE"
      name: "Calcic Haplustolls"
      tests:
        all_of:
          - calcic_subgroup_usda: {}
    - code: "IGGG"
      name: "Aridic Lithic Haplustolls"
      tests:
        all_of:
          - smr_aridic_usda: {}
          - lithic_contact_usda: { max_top_cm: 50 }
    - code: "IGGH"
      name: "Andic Haplustolls"
      tests:
        all_of:
          - andic_subgroup_usda: {}
    - code: "IGGI"
      name: "Vitrandic Haplustolls"
      tests:
        all_of:
          - vitrandic_subgroup_usda: {}
    - code: "IGGJ"
      name: "Aquic Cumulic Haplustolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
          - cumulic_subgroup_usda: {}
    - code: "IGGK"
      name: "Cumulic Haplustolls"
      tests:
        all_of:
          - cumulic_subgroup_usda: {}
    - code: "IGGL"
      name: "Thapto-Humic Haplustolls"
      tests:
        all_of:
          - thapto_humic_usda: {}
    - code: "IGGM"
      name: "Fluvaquentic Haplustolls"
      tests:
        all_of:
          - fluvaquentic_usda: {}
    - code: "IGGN"
      name: "Oxyaquic Haplustolls"
      tests:
        all_of:
          - oxyaquic_subgroup_usda: {}
    - code: "IGGO"
      name: "Aridic Haplustolls"
      tests:
        all_of:
          - smr_aridic_usda: {}
    - code: "IGGF"
      name: "Typic Haplustolls"
      tests:
        default: true

  # ====== UDOLLS ======

  "IHA":  # Natrudolls (3)
    - code: "IHAA"
      name: "Vertic Natrudolls"
      tests:
        all_of:
          - vertic_subgroup_usda: {}
    - code: "IHAB"
      name: "Aquic Natrudolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
    - code: "IHAD"
      name: "Petrocalcic Natrudolls"
      tests:
        all_of:
          - petrocalcic_subgroup_usda: {}
    - code: "IHAE"
      name: "Calcic Natrudolls"
      tests:
        all_of:
          - calcic_subgroup_usda: {}
    - code: "IHAC"
      name: "Typic Natrudolls"
      tests:
        default: true

  "IHB":  # Calciudolls (3)
    - code: "IHBA"
      name: "Lithic Calciudolls"
      tests:
        all_of:
          - lithic_contact_usda: { max_top_cm: 50 }
    - code: "IHBB"
      name: "Petrocalcic Calciudolls"
      tests:
        all_of:
          - petrocalcic_subgroup_usda: {}
    - code: "IHBD"
      name: "Aquic Calciudolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
    - code: "IHBE"
      name: "Thapto-Humic Calciudolls"
      tests:
        all_of:
          - thapto_humic_usda: {}
    - code: "IHBC"
      name: "Typic Calciudolls"
      tests:
        default: true

  "IHC":  # Paleudolls (4)
    - code: "IHCA"
      name: "Vertic Paleudolls"
      tests:
        all_of:
          - vertic_subgroup_usda: {}
    - code: "IHCB"
      name: "Pachic Paleudolls"
      tests:
        all_of:
          - pachic_subgroup_usda: {}
    - code: "IHCC"
      name: "Aquic Paleudolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
    - code: "IHCE"
      name: "Aquic Pachic Paleudolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
          - pachic_subgroup_usda: {}
    - code: "IHCF"
      name: "Oxyaquic Paleudolls"
      tests:
        all_of:
          - oxyaquic_subgroup_usda: {}
    - code: "IHCG"
      name: "Calcic Paleudolls"
      tests:
        all_of:
          - calcic_subgroup_usda: {}
    - code: "IHCD"
      name: "Typic Paleudolls"
      tests:
        default: true

  "IHD":  # Argiudolls (5)
    - code: "IHDA"
      name: "Lithic Argiudolls"
      tests:
        all_of:
          - lithic_contact_usda: { max_top_cm: 50 }
    - code: "IHDB"
      name: "Aquic Argiudolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
    - code: "IHDC"
      name: "Vertic Argiudolls"
      tests:
        all_of:
          - vertic_subgroup_usda: {}
    - code: "IHDD"
      name: "Pachic Argiudolls"
      tests:
        all_of:
          - pachic_subgroup_usda: {}
    - code: "IHDF"
      name: "Petrocalcic Argiudolls"
      tests:
        all_of:
          - petrocalcic_subgroup_usda: {}
    - code: "IHDG"
      name: "Andic Argiudolls"
      tests:
        all_of:
          - andic_subgroup_usda: {}
    - code: "IHDH"
      name: "Vitrandic Argiudolls"
      tests:
        all_of:
          - vitrandic_subgroup_usda: {}
    - code: "IHDI"
      name: "Aquic Pachic Argiudolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
          - pachic_subgroup_usda: {}
    - code: "IHDJ"
      name: "Oxyaquic Argiudolls"
      tests:
        all_of:
          - oxyaquic_subgroup_usda: {}
    - code: "IHDK"
      name: "Lamellic Argiudolls"
      tests:
        all_of:
          - lamellic_subgroup_usda: {}
    - code: "IHDL"
      name: "Arenic Argiudolls"
      tests:
        all_of:
          - arenic_subgroup_usda: {}
    - code: "IHDM"
      name: "Calcic Argiudolls"
      tests:
        all_of:
          - calcic_subgroup_usda: {}
    - code: "IHDE"
      name: "Typic Argiudolls"
      tests:
        default: true

  "IHE":  # Vermudolls (3)
    - code: "IHEA"
      name: "Lithic Vermudolls"
      tests:
        all_of:
          - lithic_contact_usda: { max_top_cm: 50 }
    - code: "IHEB"
      name: "Pachic Vermudolls"
      tests:
        all_of:
          - pachic_subgroup_usda: {}
    - code: "IHED"
      name: "Haplic Vermudolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
    - code: "IHEC"
      name: "Typic Vermudolls"
      tests:
        default: true

  "IHF":  # Hapludolls (6)
    - code: "IHFA"
      name: "Lithic Hapludolls"
      tests:
        all_of:
          - lithic_contact_usda: { max_top_cm: 50 }
    - code: "IHFB"
      name: "Aquic Hapludolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
    - code: "IHFC"
      name: "Vertic Hapludolls"
      tests:
        all_of:
          - vertic_subgroup_usda: {}
    - code: "IHFD"
      name: "Pachic Hapludolls"
      tests:
        all_of:
          - pachic_subgroup_usda: {}
    - code: "IHFE"
      name: "Cumulic Hapludolls"
      tests:
        all_of:
          - cumulic_subgroup_usda: {}
    - code: "IHFG"
      name: "Petrocalcic Hapludolls"
      tests:
        all_of:
          - petrocalcic_subgroup_usda: {}
    - code: "IHFH"
      name: "Andic Hapludolls"
      tests:
        all_of:
          - andic_subgroup_usda: {}
    - code: "IHFI"
      name: "Vitrandic Hapludolls"
      tests:
        all_of:
          - vitrandic_subgroup_usda: {}
    - code: "IHFJ"
      name: "Aquic Cumulic Hapludolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
          - cumulic_subgroup_usda: {}
    - code: "IHFK"
      name: "Thapto-Humic Hapludolls"
      tests:
        all_of:
          - thapto_humic_usda: {}
    - code: "IHFL"
      name: "Fluvaquentic Hapludolls"
      tests:
        all_of:
          - fluvaquentic_usda: {}
    - code: "IHFM"
      name: "Aquic Pachic Hapludolls"
      tests:
        all_of:
          - aquic_subgroup_usda: {}
          - pachic_subgroup_usda: {}
    - code: "IHFN"
      name: "Oxyaquic Hapludolls"
      tests:
        all_of:
          - oxyaquic_subgroup_usda: {}
    - code: "IHFO"
      name: "Calcic Hapludolls"
      tests:
        all_of:
          - calcic_subgroup_usda: {}
    - code: "IHFP"
      name: "Entic Hapludolls"
      tests:
        all_of:
          - entic_subgroup_usda: {}
    - code: "IHFF"
      name: "Typic Hapludolls"
      tests:
        default: true
