#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
This file contains the selected meshes + SOFA files used for generating datasets of different sizes.

Note the following:
- The total number of Scapes to generate is fixed at 1200. Only the number of **meshes** changes per dataset.
- Larger datasets include the same meshes as smaller ones
    - e.g. split 36, train is a superset of split 18, train, is a superset of split 9, train...
- Running this file directly will perform some sanity checks, e.g. that there are no duplicate meshes.
"""

MESHES = {
    "9": {
        "train": [
            "Haymarket.glb",
            "Swisshome.glb",
            "Siren.glb",
            "Traver.glb",
            "Hercules.glb",
            "Halfway.glb",
        ],
        "test": ["Helix.glb", "Peacock.glb", "Vails.glb"],
        "scapes_per_train_mesh": 150,
        "scapes_per_test_mesh": 100,
    },
    "9B": {
        "train": [
            "Eagan.glb",
            "Baneberry.glb",
            "Quantico.glb",
            "Superior.glb",
            "Hambleton.glb",
            "Tyler.glb",
        ],
        "test": [
            "Assinippi.glb",
            "Maiden.glb",
            "Grangeville.glb",
        ],
        "scapes_per_train_mesh": 150,
        "scapes_per_test_mesh": 100,
    },
    "9C": {
        "train": [
            "Glenmoor.glb",
            "Hallettsville.glb",
            "Voorhees.glb",
            "Pocopson.glb",
            "Almena.glb",
            "Fleming.glb",
        ],
        "test": [
            "Anaheim.glb",
            "Tansboro.glb",
            "Funkstown.glb",
        ],
        "scapes_per_train_mesh": 150,
        "scapes_per_test_mesh": 100,
    },
    "9D": {
        "train": [
            "Frontenac.glb",
            "Andover.glb",
            "Westerville.glb",
            "Tolstoy.glb",
            "Hordville.glb",
            "Holcut.glb",
        ],
        "test": [
            "Emmaus.glb",
            "Trail.glb",
            "Ophir.glb",
        ],
        "scapes_per_train_mesh": 150,
        "scapes_per_test_mesh": 100,
    },
    "12": {
        "train": [
            "Haymarket.glb",
            "Swisshome.glb",
            "Siren.glb",
            "Traver.glb",
            "Hercules.glb",
            "Halfway.glb",
            "Eagan.glb",
            "Baneberry.glb",
        ],
        "test": [
            "Helix.glb",
            "Peacock.glb",
            "Vails.glb",
            "Assinippi.glb",
        ],
        "scapes_per_train_mesh": 120,
        "scapes_per_test_mesh": 60,
    },
    "18": {
        "train": [
            "Haymarket.glb",
            "Swisshome.glb",
            "Siren.glb",
            "Traver.glb",
            "Hercules.glb",
            "Halfway.glb",
            "Eagan.glb",
            "Baneberry.glb",
            "Quantico.glb",
            "Superior.glb",
            "Hambleton.glb",
            "Tyler.glb",
        ],
        "test": [
            "Helix.glb",
            "Peacock.glb",
            "Vails.glb",
            "Assinippi.glb",
            "Maiden.glb",
            "Grangeville.glb",
        ],
        "scapes_per_train_mesh": 75,
        "scapes_per_test_mesh": 50,
    },
    "36": {
        "train": [
            "Haymarket.glb",
            "Swisshome.glb",
            "Siren.glb",
            "Traver.glb",
            "Hercules.glb",
            "Halfway.glb",
            "Eagan.glb",
            "Baneberry.glb",
            "Quantico.glb",
            "Superior.glb",
            "Hambleton.glb",
            "Tyler.glb",
            "Glenmoor.glb",
            "Hallettsville.glb",
            "Voorhees.glb",
            "Pocopson.glb",
            "Almena.glb",
            "Fleming.glb",
            "Frontenac.glb",
            "Andover.glb",
            "Westerville.glb",
            "Tolstoy.glb",
            "Hordville.glb",
            "Holcut.glb",
        ],
        "test": [
            "Helix.glb",
            "Peacock.glb",
            "Vails.glb",
            "Assinippi.glb",
            "Maiden.glb",
            "Grangeville.glb",
            "Anaheim.glb",
            "Tansboro.glb",
            "Funkstown.glb",
            "Portola.glb",
            "Emmaus.glb",
            "Edgemere.glb",
        ],
        "scapes_per_train_mesh": 40,
        "scapes_per_test_mesh": 20,
    },
    "72": {
        "train": [
            "Haymarket.glb",
            "Swisshome.glb",
            "Siren.glb",
            "Traver.glb",
            "Hercules.glb",
            "Halfway.glb",
            "Eagan.glb",
            "Baneberry.glb",
            "Quantico.glb",
            "Superior.glb",
            "Hambleton.glb",
            "Tyler.glb",
            "Glenmoor.glb",
            "Hallettsville.glb",
            "Voorhees.glb",
            "Pocopson.glb",
            "Almena.glb",
            "Fleming.glb",
            "Frontenac.glb",
            "Andover.glb",
            "Westerville.glb",
            "Tolstoy.glb",
            "Hordville.glb",
            "Holcut.glb",
            "Ballantine.glb",
            "Howie.glb",
            "Kremlin.glb",
            "Sultan.glb",
            "Everton.glb",
            "Markleeville.glb",
            "Pettigrew.glb",
            "Ogilvie.glb",
            "Sagerton.glb",
            "Carpio.glb",
            "Irvine.glb",
            "Woonsocket.glb",
            "Woodbine.glb",
            "Tokeland.glb",
            "Grainola.glb",
            "Peden.glb",
            "Mazomanie.glb",
            "Harkeyville.glb",
            "Bonnie.glb",
            "Fedora.glb",
            "Spread.glb",
            "Oyens.glb",
            "Angiola.glb",
            "Orangeburg.glb",
        ],
        "test": [
            "Helix.glb",
            "Peacock.glb",
            "Vails.glb",
            "Assinippi.glb",
            "Maiden.glb",
            "Grangeville.glb",
            "Anaheim.glb",
            "Tansboro.glb",
            "Funkstown.glb",
            "Portola.glb",
            "Emmaus.glb",
            "Edgemere.glb",
            "Silva.glb",
            "Kingdom.glb",
            "Goodfield.glb",
            "Bonesteel.glb",
            "Crugers.glb",
            "Macedon.glb",
            "Collierville.glb",
            "Yankeetown.glb",
            "Cisne.glb",
            "Fonda.glb",
            "Trail.glb",
            "Ophir.glb",
        ],
        "scapes_per_train_mesh": 20,
        "scapes_per_test_mesh": 10,
    },
    "144": {
        "train": [
            "Haymarket.glb",
            "Swisshome.glb",
            "Siren.glb",
            "Traver.glb",
            "Hercules.glb",
            "Halfway.glb",
            "Eagan.glb",
            "Baneberry.glb",
            "Quantico.glb",
            "Superior.glb",
            "Hambleton.glb",
            "Tyler.glb",
            "Glenmoor.glb",
            "Hallettsville.glb",
            "Voorhees.glb",
            "Pocopson.glb",
            "Almena.glb",
            "Fleming.glb",
            "Frontenac.glb",
            "Andover.glb",
            "Westerville.glb",
            "Tolstoy.glb",
            "Hordville.glb",
            "Holcut.glb",
            "Ballantine.glb",
            "Howie.glb",
            "Kremlin.glb",
            "Sultan.glb",
            "Everton.glb",
            "Markleeville.glb",
            "Pettigrew.glb",
            "Ogilvie.glb",
            "Sagerton.glb",
            "Carpio.glb",
            "Irvine.glb",
            "Woonsocket.glb",
            "Woodbine.glb",
            "Tokeland.glb",
            "Grainola.glb",
            "Peden.glb",
            "Mazomanie.glb",
            "Harkeyville.glb",
            "Bonnie.glb",
            "Fedora.glb",
            "Spread.glb",
            "Oyens.glb",
            "Angiola.glb",
            "Orangeburg.glb",
            "Hennepin.glb",
            "Broseley.glb",
            "Mullica.glb",
            "Bolton.glb",
            "Bettendorf.glb",
            "Kirksville.glb",
            "Corder.glb",
            "Adrian.glb",
            "Mifflintown.glb",
            "Mosinee.glb",
            "Beach.glb",
            "Stilwell.glb",
            "Readsboro.glb",
            "Seatonville.glb",
            "Crandon.glb",
            "Noonday.glb",
            "Wilkinsburg.glb",
            "Branford.glb",
            "Mahtomedi.glb",
            "Kopperl.glb",
            "Clive.glb",
            "Kendall.glb",
            "Frankton.glb",
            "Cooperstown.glb",
            "Mifflinburg.glb",
            "Carpendale.glb",
            "Rutherford.glb",
            "Neibert.glb",
            "Micanopy.glb",
            "Model.glb",
            "Inkom.glb",
            "Merom.glb",
            "Lindsborg.glb",
            "Galatia.glb",
            "Arbutus.glb",
            "Calmar.glb",
            "Kobuk.glb",
            "Lacon.glb",
            "Martinville.glb",
            "Corozal.glb",
            "Ruckersville.glb",
            "McKeesport.glb",
            "Shauck.glb",
            "Touhy.glb",
            "Mashulaville.glb",
            "Cornville.glb",
            "Coronado.glb",
            "Tomkins.glb",
        ],
        "test": [
            "Helix.glb",
            "Peacock.glb",
            "Vails.glb",
            "Assinippi.glb",
            "Maiden.glb",
            "Grangeville.glb",
            "Anaheim.glb",
            "Tansboro.glb",
            "Funkstown.glb",
            "Portola.glb",
            "Emmaus.glb",
            "Edgemere.glb",
            "Silva.glb",
            "Kingdom.glb",
            "Goodfield.glb",
            "Bonesteel.glb",
            "Crugers.glb",
            "Macedon.glb",
            "Collierville.glb",
            "Yankeetown.glb",
            "Cisne.glb",
            "Fonda.glb",
            "Trail.glb",
            "Ophir.glb",
            "Mesic.glb",
            "Seward.glb",
            "Seiling.glb",
            "Haaswood.glb",
            "Annona.glb",
            "Bohemia.glb",
            "Judith.glb",
            "Munsons.glb",
            "Wyldwood.glb",
            "Wainscott.glb",
            "Elmira.glb",
            "Whitethorn.glb",
            "Barranquitas.glb",
            "Hindsboro.glb",
            "Sugarville.glb",
            "Gratz.glb",
            "Circleville.glb",
            "Monson.glb",
            "Mogadore.glb",
            "Kettle.glb",
            "Roane.glb",
            "Bethlehem.glb",
            "Hartline.glb",
            "Maida.glb",
        ],
        "scapes_per_train_mesh": 10,
        "scapes_per_test_mesh": 5,
    },
}
MESHES["9A"] = MESHES["9"]

glb_files = [
    "Ackermanville.glb",
    "Bonesteel.glb",
    "Colebrook.glb",
    "Forkland.glb",
    "Hercules.glb",
    "Laytonsville.glb",
    "Milaca.glb",
    "Placida.glb",
    "Sherrill.glb",
    "Tradewinds.glb",
    "Adairsville.glb",
    "Bonnie.glb",
    "Collierville.glb",
    "Foyil.glb",
    "Herricks.glb",
    "Leavittsburg.glb",
    "Milford.glb",
    "Pleasant.glb",
    "Shumway.glb",
    "Trail.glb",
    "Adrian.glb",
    "Booth.glb",
    "Connoquenessing.glb",
    "Frankfort.glb",
    "Highspire.glb",
    "Lenoir.glb",
    "Millbury.glb",
    "Plumerville.glb",
    "Silas.glb",
    "Traver.glb",
    "Airport.glb",
    "Bountiful.glb",
    "Convoy.glb",
    "Frankton.glb",
    "Hildebran.glb",
    "Leonardo.glb",
    "Moark.glb",
    "Pocasset.glb",
    "Silerton.glb",
    "Tyler.glb",
    "Albertville.glb",
    "Bowlus.glb",
    "Cooperstown.glb",
    "Fredericksburg.glb",
    "Hillsdale.glb",
    "Lessley.glb",
    "Moberly.glb",
    "Pocopson.glb",
    "Silva.glb",
    "Umpqua.glb",
    "Aldrich.glb",
    "Bowmore.glb",
    "Copemish.glb",
    "Freedom.glb",
    "Hindsboro.glb",
    "Lincolnwood.glb",
    "Mobridge.glb",
    "Pomaria.glb",
    "Siren.glb",
    "Uncertain.glb",
    "Alfred.glb",
    "Branford.glb",
    "Corder.glb",
    "Frierson.glb",
    "Hitchland.glb",
    "Lindberg.glb",
    "Model.glb",
    "Portal.glb",
    "Sisters.glb",
    "Upham.glb",
    "Allensville.glb",
    "Braxton.glb",
    "Cornville.glb",
    "Frontenac.glb",
    "Hiteman.glb",
    "Lindenwood.glb",
    "Mogadore.glb",
    "Portola.glb",
    "Smoketown.glb",
    "Vails.glb",
    "Almena.glb",
    "Bremerton.glb",
    "Coronado.glb",
    "Funkstown.glb",
    "Hobson.glb",
    "Lindsborg.glb",
    "Mogote.glb",
    "Potosi.glb",
    "Sodaville.glb",
    "Victorville.glb",
    "Almota.glb",
    "Brevort.glb",
    "Corozal.glb",
    "Galatia.glb",
    "Holcut.glb",
    "Lineville.glb",
    "Monson.glb",
    "Potterville.glb",
    "Soldier.glb",
    "Voorhees.glb",
    "Aloha.glb",
    "Brewton.glb",
    "Cosmos.glb",
    "Gasburg.glb",
    "Hometown.glb",
    "Lluveras.glb",
    "Monticello.glb",
    "Poyen.glb",
    "Southfield.glb",
    "Waimea.glb",
    "Alstown.glb",
    "Broseley.glb",
    "Cottonport.glb",
    "Gaylord.glb",
    "Hominy.glb",
    "Lucan.glb",
    "Montreal.glb",
    "Quantico.glb",
    "Spencerville.glb",
    "Wainscott.glb",
    "American.glb",
    "Brown.glb",
    "Country.glb",
    "Germfask.glb",
    "Hordville.glb",
    "Ludlowville.glb",
    "Moonachie.glb",
    "Ranchester.glb",
    "Spotswood.glb",
    "Waipahu.glb",
    "Anaheim.glb",
    "Browntown.glb",
    "Crandon.glb",
    "Gilbert.glb",
    "Hornsby.glb",
    "Lynchburg.glb",
    "Mosinee.glb",
    "Rancocas.glb",
    "Spread.glb",
    "Waldenburg.glb",
    "Ancor.glb",
    "Burien.glb",
    "Creede.glb",
    "Gladstone.glb",
    "Hortense.glb",
    "Lynxville.glb",
    "Mosquito.glb",
    "Random.glb",
    "Springerville.glb",
    "Warrenville.glb",
    "Andover.glb",
    "Bushong.glb",
    "Crookston.glb",
    "Glassboro.glb",
    "Howie.glb",
    "MacArthur.glb",
    "Mullica.glb",
    "Readsboro.glb",
    "Springhill.glb",
    "Wattsville.glb",
    "Angiola.glb",
    "Byers.glb",
    "Crugers.glb",
    "Glenmoor.glb",
    "Hurley.glb",
    "Macedon.glb",
    "Munsons.glb",
    "Redbank.glb",
    "Stanleyville.glb",
    "Waucousta.glb",
    "Annawan.glb",
    "Cabin.glb",
    "Culbertson.glb",
    "Globe.glb",
    "Idanha.glb",
    "Macksville.glb",
    "Murchison.glb",
    "Reserve.glb",
    "Starks.glb",
    "Waukeenah.glb",
    "Annona.glb",
    "Callicoon.glb",
    "Cullison.glb",
    "Gloria.glb",
    "Inkom.glb",
    "Maguayo.glb",
    "Musicks.glb",
    "Retsof.glb",
    "Stigler.glb",
    "Webster.glb",
    "Anthoston.glb",
    "Calmar.glb",
    "Cutlerville.glb",
    "Goffs.glb",
    "Irvine.glb",
    "Mahtomedi.glb",
    "Neibert.glb",
    "Reyno.glb",
    "Stilwell.glb",
    "Weleetka.glb",
    "Apache.glb",
    "Cantwell.glb",
    "Dansville.glb",
    "Goodfield.glb",
    "Islandton.glb",
    "Maida.glb",
    "Nemacolin.glb",
    "Ribera.glb",
    "Stockertown.glb",
    "Wells.glb",
    "Applewold.glb",
    "Capistrano.glb",
    "Darden.glb",
    "Goodwine.glb",
    "Jacobus.glb",
    "Maiden.glb",
    "Neshkoro.glb",
    "Roane.glb",
    "Stockman.glb",
    "Wesley.glb",
    "Arbutus.glb",
    "Carneiro.glb",
    "Darnestown.glb",
    "Goodyear.glb",
    "Jenners.glb",
    "Maitland.glb",
    "Newcomb.glb",
    "Roeville.glb",
    "Stockwell.glb",
    "Westerville.glb",
    "Archer.glb",
    "Carpendale.glb",
    "Deatsville.glb",
    "Gough.glb",
    "Jennie.glb",
    "Mammoth.glb",
    "Newfields.glb",
    "Rogue.glb",
    "Stokes.glb",
    "Westfield.glb",
    "Arkansaw.glb",
    "Carpio.glb",
    "Dedham.glb",
    "Grace.glb",
    "Judith.glb",
    "Maricopa.glb",
    "Nicut.glb",
    "Rosser.glb",
    "Sugarville.glb",
    "Whiteriver.glb",
    "Arona.glb",
    "Cashel.glb",
    "Deemston.glb",
    "Graceville.glb",
    "Kangley.glb",
    "Markleeville.glb",
    "Nimmons.glb",
    "Rough.glb",
    "Sultan.glb",
    "Whitethorn.glb",
    "Artois.glb",
    "Cason.glb",
    "Delton.glb",
    "Gracey.glb",
    "Kankakee.glb",
    "Marksville.glb",
    "Noonday.glb",
    "Roxboro.glb",
    "Sumas.glb",
    "Wiconisco.glb",
    "Ashport.glb",
    "Castor.glb",
    "Denmark.glb",
    "Grainola.glb",
    "Kathryn.glb",
    "Marland.glb",
    "Northgate.glb",
    "Ruckersville.glb",
    "Sundown.glb",
    "Wilbraham.glb",
    "Assinippi.glb",
    "Castroville.glb",
    "Divide.glb",
    "Grangeville.glb",
    "Keiser.glb",
    "Marstons.glb",
    "Nuevo.glb",
    "Rutherford.glb",
    "Sunshine.glb",
    "Wilkinsburg.glb",
    "Athens.glb",
    "Cayuse.glb",
    "Dryville.glb",
    "Grantsville.glb",
    "Kemblesville.glb",
    "Martinville.glb",
    "Ogilvie.glb",
    "Sagerton.glb",
    "Superior.glb",
    "Willow.glb",
    "Auburn.glb",
    "Cebolla.glb",
    "Duarte.glb",
    "Grassy.glb",
    "Kendall.glb",
    "Maryhill.glb",
    "Okabena.glb",
    "Sanctuary.glb",
    "Sussex.glb",
    "Wilseyville.glb",
    "Aulander.glb",
    "Channel.glb",
    "Duluth.glb",
    "Gratz.glb",
    "Kerrtown.glb",
    "Mashulaville.glb",
    "Onaga.glb",
    "Sands.glb",
    "Sweatman.glb",
    "Windhorst.glb",
    "Avonia.glb",
    "Checotah.glb",
    "Dunmor.glb",
    "Gravelly.glb",
    "Kettle.glb",
    "Maugansville.glb",
    "Ooltewah.glb",
    "Sarcoxie.glb",
    "Swisshome.glb",
    "Winfield.glb",
    "Azusa.glb",
    "Chesaning.glb",
    "Eagan.glb",
    "Greigsville.glb",
    "Kevin.glb",
    "Maunawili.glb",
    "Ophir.glb",
    "Sargents.glb",
    "Swormville.glb",
    "Winooski.glb",
    "Ballantine.glb",
    "Chesterbrook.glb",
    "Eagerville.glb",
    "Haaswood.glb",
    "Keweenaw.glb",
    "Mayesville.glb",
    "Orangeburg.glb",
    "Sasakwa.glb",
    "Tallmadge.glb",
    "Winthrop.glb",
    "Ballou.glb",
    "Chilhowie.glb",
    "Eastville.glb",
    "Hacienda.glb",
    "Kildare.glb",
    "Mazomanie.glb",
    "Orason.glb",
    "Sawpit.glb",
    "Tansboro.glb",
    "Woodbine.glb",
    "Baneberry.glb",
    "Chiloquin.glb",
    "Edgemere.glb",
    "Hainesburg.glb",
    "Kinde.glb",
    "McCloud.glb",
    "Oriole.glb",
    "Scandinavia.glb",
    "Tariffville.glb",
    "Woonsocket.glb",
    "Barboursville.glb",
    "Chireno.glb",
    "Ellaville.glb",
    "Halfway.glb",
    "Kingdom.glb",
    "McEwen.glb",
    "Ossipee.glb",
    "Schiller.glb",
    "Terrell.glb",
    "Wyatt.glb",
    "Barranquitas.glb",
    "Chrisney.glb",
    "Elmira.glb",
    "Hallettsville.glb",
    "Kinney.glb",
    "McKeesport.glb",
    "Ovalo.glb",
    "Schoolcraft.glb",
    "Texasville.glb",
    "Wyldwood.glb",
    "Bautista.glb",
    "Churchton.glb",
    "Elton.glb",
    "Hambleton.glb",
    "Kirksville.glb",
    "Melstone.glb",
    "Oyens.glb",
    "Scioto.glb",
    "Thrall.glb",
    "Yadkinville.glb",
    "Beach.glb",
    "Circleville.glb",
    "Emmaus.glb",
    "Hanson.glb",
    "Kirwin.glb",
    "Mentasta.glb",
    "Pablo.glb",
    "Scottsmoor.glb",
    "Tilghmanton.glb",
    "Yankeetown.glb",
    "Beechwood.glb",
    "Cisne.glb",
    "Eudora.glb",
    "Harkeyville.glb",
    "Klickitat.glb",
    "Mentmore.glb",
    "Pamelia.glb",
    "Seatonville.glb",
    "Tillman.glb",
    "Yscloskey.glb",
    "Bellwood.glb",
    "Clairton.glb",
    "Euharlee.glb",
    "Harrellsville.glb",
    "Kobuk.glb",
    "Merchantville.glb",
    "Parole.glb",
    "Seeley.glb",
    "Timberon.glb",
    "Benevolence.glb",
    "Clarkridge.glb",
    "Everton.glb",
    "Hartline.glb",
    "Kopperl.glb",
    "Merlin.glb",
    "Pasatiempo.glb",
    "Seiling.glb",
    "Tippecanoe.glb",
    "Bethlehem.glb",
    "Clive.glb",
    "Ewell.glb",
    "Hatfield.glb",
    "Kremlin.glb",
    "Merom.glb",
    "Peacock.glb",
    "Seward.glb",
    "Tokeland.glb",
    "Bettendorf.glb",
    "Cobalt.glb",
    "Fedora.glb",
    "Haxtun.glb",
    "Kronborg.glb",
    "Mesic.glb",
    "Pearce.glb",
    "Sharon.glb",
    "Tolstoy.glb",
    "Biltmore.glb",
    "Codell.glb",
    "Fishersville.glb",
    "Haymarket.glb",
    "Lacon.glb",
    "Micanopy.glb",
    "Peden.glb",
    "Shauck.glb",
    "Tomales.glb",
    "Blackstone.glb",
    "Coffeen.glb",
    "Fitchburg.glb",
    "Helix.glb",
    "Lajas.glb",
    "Michiana.glb",
    "Pettigrew.glb",
    "Shelbiana.glb",
    "Tomkins.glb",
    "Bohemia.glb",
    "Cohoes.glb",
    "Fleming.glb",
    "Hendrix.glb",
    "Lakeville.glb",
    "Mifflinburg.glb",
    "Pinesdale.glb",
    "Shelbyville.glb",
    "Torrington.glb",
    "Bolton.glb",
    "Cokeville.glb",
    "Fonda.glb",
    "Hennepin.glb",
    "Laupahoehoe.glb",
    "Mifflintown.glb",
    "Pittsburg.glb",
    "Shellsburg.glb",
    "Touhy.glb",
]


SOFAS = {
    "9A": {
        "train": [
            "pb132",
            "pc226",
            "sa203",
            "sc203",
            "se203",
            "tb103",
        ],
        "test": ["tc352", "bomb_shelter", "gym"],
        "scapes_per_train_mesh": 150,
        "scapes_per_test_mesh": 100,
    }
}


if __name__ == "__main__":
    # Sanity checks
    for k, v in MESHES.items():
        # All files should be in the list
        assert len([i for i in v["train"] + v["test"] if i not in glb_files]) == 0
        # Desired number of meshes are used
        assert len(v["test"]) + len(v["train"]) == int(
            "".join(c for c in k if c.isdigit())
        )
        # Number of scapes created should be 1200
        assert (len(v["test"]) * v["scapes_per_test_mesh"]) + (
            len(v["train"]) * v["scapes_per_train_mesh"]
        ) == 1200
        # Should be no overlap between test/train meshes.
        assert len(set(v["test"] + v["train"])) == len(v["test"]) + len(v["train"])
