@haystacks/constants
Version:
A repo to store reusable constants libraries for use with haystacks implemented applications & plugins.
656 lines (655 loc) • 117 kB
JavaScript
/**
* @file shape-constants-validation.js
* @module shape-constants-validation
* @description Contains validations for named geometric shapes & knots.
* @requires module:shape-constants
* @author Seth Hollingsead
* @date 2020/07/23
* @copyright Copyright © 2020-… by Seth Hollingsead. All rights reserved
*/
import * as shp from '../../Constants/shape.constants';
/**
* @function shapeConstantsValidation
* @description Initializes the shape constants validation data objects array.
* @return {void}
* @author Seth Hollingsead
* @date 2020/07/23
*/
export const shapeConstantsValidation = [
// Basic Shapes
// {Name: 'cline', Actual: shp.cline, Expected: 'line'},
// {Name: 'cLine', Actual: shp.cLine, Expected: 'Line'},
// {Name: 'ccircle', Actual: shp.ccircle, Expected: 'circle'},
// {Name: 'cCircle', Actual: shp.cCircle, Expected: 'Circle'},
// {Name: 'coval', Actual: shp.coval, Expected: 'oval'},
// {Name: 'cOval', Actual: shp.cOval, Expected: 'Oval'},
// {Name: 'csquare', Actual: shp.csquare, Expected: 'square'},
// {Name: 'cSquare', Actual: shp.cSquare, Expected: 'Square'},
// {Name: 'ctriangle', Actual: shp.ctriangle, Expected: 'triangle'},
// {Name: 'cTriangle', Actual: shp.cTriangle, Expected: 'Triangle'},
// {Name: 'crectangle', Actual: shp.crectangle, Expected: 'rectangle'},
// {Name: 'cRectangle', Actual: shp.cRectangle, Expected: 'Rectangle'},
// {Name: 'coctagon', Actual: shp.coctagon, Expected: 'octagon'},
// {Name: 'cOctagon', Actual: shp.cOctagon, Expected: 'Octagon'},
// {Name: 'chexagon', Actual: shp.chexagon, Expected: 'hexagon'},
// {Name: 'cHexagon', Actual: shp.cHexagon, Expected: 'Hexagon'},
// {Name: 'cheptagon', Actual: shp.cheptagon, Expected: 'heptagon'},
// {Name: 'cHeptagon', Actual: shp.cHeptagon, Expected: 'Heptagon'},
// {Name: 'cnonagon', Actual: shp.cnonagon, Expected: 'nonagon'},
// {Name: 'cNonagon', Actual: shp.cNonagon, Expected: 'Nonagon'},
// {Name: 'ctrapezoid', Actual: shp.ctrapezoid, Expected: 'trapezoid'},
// {Name: 'cTrapezoid', Actual: shp.cTrapezoid, Expected: 'Trapezoid'},
// {Name: 'ccube', Actual: shp.ccube, Expected: 'cube'},
// {Name: 'cCube', Actual: shp.cCube, Expected: 'Cube'},
// // This could go on forever!!
// // https://en.wikipedia.org/wiki/List_of_mathematical_shapes
//
// // Miscellaneous
// {Name: 'ccubic', Actual: shp.ccubic, Expected: 'cubic'},
// {Name: 'cCubic', Actual: shp.cCubic, Expected: 'Cubic'},
// {Name: 'cplane', Actual: shp.cplane, Expected: 'plane'},
// {Name: 'cPlane', Actual: shp.cPlane, Expected: 'Plane'},
// {Name: 'ccurve', Actual: shp.ccurve, Expected: 'curve'},
// {Name: 'cCurve', Actual: shp.cCurve, Expected: 'Curve'},
// {Name: 'cquartic', Actual: shp.cquartic, Expected: 'quartic'},
// {Name: 'cQuartic', Actual: shp.cQuartic, Expected: 'Quartic'},
// {Name: 'cconic', Actual: shp.cconic, Expected: 'conic'},
// {Name: 'cConic', Actual: shp.cConic, Expected: 'Conic'},
//
// // Algebraic Curves
// {Name: 'ccubicPlaneCurve', Actual: shp.ccubicPlaneCurve, Expected: 'cubicPlaneCurve'},
// {Name: 'cCubicPlaneCurve', Actual: shp.cCubicPlaneCurve, Expected: 'CubicPlaneCurve'},
// {Name: 'cquarticPlaneCurve', Actual: shp.cquarticPlaneCurve, Expected: 'quarticPlaneCurve'},
// {Name: 'cQuarticPlaneCurve', Actual: shp.cQuarticPlaneCurve, Expected: 'QuarticPlaneCurve'},
//
// // 2nd Degree Curves
// {Name: 'cconicSection', Actual: shp.cconicSection, Expected: 'conicSection'},
// {Name: 'cConicSection', Actual: shp.cConicSection, Expected: 'ConicSection'},
// {Name: 'cunitCircle', Actual: shp.cunitCircle, Expected: 'unitCircle'},
// {Name: 'cUnitCircle', Actual: shp.cUnitCircle, Expected: 'UnitCircle'},
// {Name: 'cunitHyperbola', Actual: shp.cunitHyperbola, Expected: 'unitHyperbola'},
// {Name: 'cUnitHyperbola', Actual: shp.cUnitHyperbola, Expected: 'UnitHyperbola'},
//
// // 3rd Degree Curves
// {Name: 'cFoliumOfDescartes', Actual: shp.cFoliumOfDescartes, Expected: 'FoliumOfDescartes'},
// {Name: 'cCissoidOfDiocles', Actual: shp.cCissoidOfDiocles, Expected: 'CissoidOfDiocles'},
// {Name: 'cConchoidOfDeSluze', Actual: shp.cConchoidOfDeSluze, Expected: 'ConchoidOfDeSluze'},
// {Name: 'cRightStrophoid', Actual: shp.cRightStrophoid, Expected: 'RightStrophoid'},
// {Name: 'cSemicubicalParabola', Actual: shp.cSemicubicalParabola, Expected: 'SemicubicalParabola'},
// {Name: 'cSerpentineCurve', Actual: shp.cSerpentineCurve, Expected: 'SerpentineCurve'},
// {Name: 'cTridentCurve', Actual: shp.cTridentCurve, Expected: 'TridentCurve'},
// {Name: 'cTrisectrixOfMaclaurin', Actual: shp.cTrisectrixOfMaclaurin, Expected: 'TrisectrixOfMaclaurin'},
// {Name: 'cTschirnhausenCubic', Actual: shp.cTschirnhausenCubic, Expected: 'TschirnhausenCubic'},
// {Name: 'cWitchOfAgnesi', Actual: shp.cWitchOfAgnesi, Expected: 'WitchOfAgnesi'},
//
// // 4th Degree Curves
// {Name: 'cAmpersandCurve', Actual: shp.cAmpersandCurve, Expected: 'AmpersandCurve'},
// {Name: 'cBeanCurve', Actual: shp.cBeanCurve, Expected: 'BeanCurve'},
// {Name: 'cBicorn', Actual: shp.cBicorn, Expected: 'Bicorn'},
// {Name: 'cBowCurve', Actual: shp.cBowCurve, Expected: 'BowCurve'},
// {Name: 'cBulletNoseCurve', Actual: shp.cBulletNoseCurve, Expected: 'BulletNoseCurve'},
// {Name: 'cCruciformCurve', Actual: shp.cCruciformCurve, Expected: 'CruciformCurve'},
// {Name: 'cDeltoidCurve', Actual: shp.cDeltoidCurve, Expected: 'DeltoidCurve'},
// {Name: 'cDevilsCurve', Actual: shp.cDevilsCurve, Expected: 'DevilsCurve'},
// {Name: 'cHippopede', Actual: shp.cHippopede, Expected: 'Hippopede'},
// {Name: 'cKampyleOfEudoxus', Actual: shp.cKampyleOfEudoxus, Expected: 'KampyleOfEudoxus'},
// {Name: 'cKappaCurve', Actual: shp.cKappaCurve, Expected: 'KappaCurve'},
// {Name: 'cLemniscateOfBooth', Actual: shp.cLemniscateOfBooth, Expected: 'LemniscateOfBooth'},
// {Name: 'cLemniscateOfGerono', Actual: shp.cLemniscateOfGerono, Expected: 'LemniscateOfGerono'},
// {Name: 'cLemniscateOfBernoulli', Actual: shp.cLemniscateOfBernoulli, Expected: 'LemniscateOfBernoulli'},
// {Name: 'cLimacon', Actual: shp.cLimacon, Expected: 'Limacon'},
// {Name: 'cCardioid', Actual: shp.cCardioid, Expected: 'Cardioid'},
// {Name: 'cLimaconTrisectrix', Actual: shp.cLimaconTrisectrix, Expected: 'LimaconTrisectrix'},
// {Name: 'cTrifoliumCurve', Actual: shp.cTrifoliumCurve, Expected: 'TrifoliumCurve'},
//
// // 5th Degree Curves
// {Name: 'cQuinticOfLHospital', Actual: shp.cQuinticOfLHospital, Expected: 'QuinticOfLHospital'},
//
// // 6th Degree Curves
// {Name: 'cAstroid', Actual: shp.cAstroid, Expected: 'Astroid'},
// {Name: 'cAtriphtaloid', Actual: shp.cAtriphtaloid, Expected: 'Atriphtaloid'},
// {Name: 'cNephroid', Actual: shp.cNephroid, Expected: 'Nephroid'},
// {Name: 'cQuadrifolium', Actual: shp.cQuadrifolium, Expected: 'Quadrifolium'},
//
// // Families of Variable Degree
// {Name: 'cEpicycloid', Actual: shp.cEpicycloid, Expected: 'Epicycloid'},
// {Name: 'cEpispiral', Actual: shp.cEpispiral, Expected: 'Epispiral'},
// {Name: 'cEpitrochoid', Actual: shp.cEpitrochoid, Expected: 'Epitrochoid'},
// {Name: 'cHypocycloid', Actual: shp.cHypocycloid, Expected: 'Hypocycloid'},
// {Name: 'cLissajousCurve', Actual: shp.cLissajousCurve, Expected: 'LissajousCurve'},
// {Name: 'cPoinsotsSpirals', Actual: shp.cPoinsotsSpirals, Expected: 'PoinsotsSpirals'},
// {Name: 'cRationalNormalCurve', Actual: shp.cRationalNormalCurve, Expected: 'RationalNormalCurve'},
// {Name: 'cRoseCurve', Actual: shp.cRoseCurve, Expected: 'RoseCurve'},
//
// // Curves of Genus One
// {Name: 'cBicuspidCurve', Actual: shp.cBicuspidCurve, Expected: 'BicuspidCurve'},
// {Name: 'cCassiniOval', Actual: shp.cCassiniOval, Expected: 'CassiniOval'},
// {Name: 'cCassinoide', Actual: shp.cCassinoide, Expected: 'Cassinoide'},
// {Name: 'cCubicCurve', Actual: shp.cCubicCurve, Expected: 'CubicCurve'},
// {Name: 'cEllipticCurve', Actual: shp.cEllipticCurve, Expected: 'EllipticCurve'},
// {Name: 'cWattsCurve', Actual: shp.cWattsCurve, Expected: 'WattsCurve'},
//
// // Curves with Genus Greater than One
// {Name: 'cButterflyCurve', Actual: shp.cButterflyCurve, Expected: 'ButterflyCurve'},
// {Name: 'cElkiesTrinomialCurves', Actual: shp.cElkiesTrinomialCurves, Expected: 'ElkiesTrinomialCurves'},
// {Name: 'cHyperellipticCurve', Actual: shp.cHyperellipticCurve, Expected: 'HyperellipticCurve'},
// {Name: 'cKleinQuartic', Actual: shp.cKleinQuartic, Expected: 'KleinQuartic'},
// {Name: 'cClassicalModularCurve', Actual: shp.cClassicalModularCurve, Expected: 'ClassicalModularCurve'},
// {Name: 'cBolzaSurface', Actual: shp.cBolzaSurface, Expected: 'BolzaSurface'},
// {Name: 'cMacbeathSurface', Actual: shp.cMacbeathSurface, Expected: 'MacbeathSurface'},
//
// // Curve Families with Variable Genus
// {Name: 'cPolynomialLemniscate', Actual: shp.cPolynomialLemniscate, Expected: 'PolynomialLemniscate'},
// {Name: 'cFermatCurve', Actual: shp.cFermatCurve, Expected: 'FermatCurve'},
// {Name: 'cSinusoidalSpiral', Actual: shp.cSinusoidalSpiral, Expected: 'SinusoidalSpiral'},
// {Name: 'cSuperellipse', Actual: shp.cSuperellipse, Expected: 'Superellipse'},
// {Name: 'cHurwitzSurface', Actual: shp.cHurwitzSurface, Expected: 'HurwitzSurface'},
//
// // Transcendental Curves
// {Name: 'cBowditchCurve', Actual: shp.cBowditchCurve, Expected: 'BowditchCurve'},
// {Name: 'cBrachistochrone', Actual: shp.cBrachistochrone, Expected: 'Brachistochrone'},
// {Name: 'cCatenary', Actual: shp.cCatenary, Expected: 'Catenary'},
// {Name: 'cClelies', Actual: shp.cClelies, Expected: 'Clelies'},
// {Name: 'cCochleoid', Actual: shp.cCochleoid, Expected: 'Cochleoid'},
// {Name: 'cCycloid', Actual: shp.cCycloid, Expected: 'Cycloid'},
// {Name: 'cHoropter', Actual: shp.cHoropter, Expected: 'Horopter'},
// {Name: 'cIsochrone', Actual: shp.cIsochrone, Expected: 'Isochrone'},
// {Name: 'cTautochrone', Actual: shp.cTautochrone, Expected: 'Tautochrone'},
// {Name: 'cIsochroneOfLeibniz', Actual: shp.cIsochroneOfLeibniz, Expected: 'IsochroneOfLeibniz'},
// {Name: 'cIsochroneOfVarignon', Actual: shp.cIsochroneOfVarignon, Expected: 'IsochroneOfVarignon'},
// {Name: 'cLameCurve', Actual: shp.cLameCurve, Expected: 'LameCurve'},
// {Name: 'cPursuitCurve', Actual: shp.cPursuitCurve, Expected: 'PursuitCurve'},
// {Name: 'cRhumbLine', Actual: shp.cRhumbLine, Expected: 'RhumbLine'},
// {Name: 'cSpirals', Actual: shp.cSpirals, Expected: 'Spirals'},
// {Name: 'cArchimedeanSpiral', Actual: shp.cArchimedeanSpiral, Expected: 'ArchimedeanSpiral'},
// {Name: 'cCornuSpiral', Actual: shp.cCornuSpiral, Expected: 'CornuSpiral'},
// {Name: 'cCotesSpiral', Actual: shp.cCotesSpiral, Expected: 'CotesSpiral'},
// {Name: 'cFermatsSpiral', Actual: shp.cFermatsSpiral, Expected: 'FermatsSpiral'},
// {Name: 'cGalileosSpiral', Actual: shp.cGalileosSpiral, Expected: 'GalileosSpiral'},
// {Name: 'cHyperbolicSpiral', Actual: shp.cHyperbolicSpiral, Expected: 'HyperbolicSpiral'},
// {Name: 'cLituus', Actual: shp.cLituus, Expected: 'Lituus'},
// {Name: 'cLogarithmicSpiral', Actual: shp.cLogarithmicSpiral, Expected: 'LogarithmicSpiral'},
// {Name: 'cNielsensSpiral', Actual: shp.cNielsensSpiral, Expected: 'NielsensSpiral'},
// {Name: 'cSyntractrix', Actual: shp.cSyntractrix, Expected: 'Syntractrix'},
// {Name: 'cTractrix', Actual: shp.cTractrix, Expected: 'Tractrix'},
// {Name: 'cTrochoid', Actual: shp.cTrochoid, Expected: 'Trochoid'},
//
// // Piecewise Constructions Curves
// {Name: 'cBezierCurve', Actual: shp.cBezierCurve, Expected: 'BezierCurve'},
// {Name: 'cSplines', Actual: shp.cSplines, Expected: 'Splines'},
// {Name: 'cBSpline', Actual: shp.cBSpline, Expected: 'BSpline'},
// {Name: 'cNonuniformRationalBSpline', Actual: shp.cNonuniformRationalBSpline, Expected: 'NonuniformRationalBSpline'},
// {Name: 'cNURBS', Actual: shp.cNURBS, Expected: 'NURBS'},
// {Name: 'cOgee', Actual: shp.cOgee, Expected: 'Ogee'},
// {Name: 'cLoessCurve', Actual: shp.cLoessCurve, Expected: 'LoessCurve'},
// {Name: 'cLowess', Actual: shp.cLowess, Expected: 'Lowess'},
// {Name: 'cPolygonalCurve', Actual: shp.cPolygonalCurve, Expected: 'PolygonalCurve'},
// {Name: 'cMaurerRose', Actual: shp.cMaurerRose, Expected: 'MaurerRose'},
// {Name: 'cReuleauxTriangle', Actual: shp.cReuleauxTriangle, Expected: 'ReuleauxTriangle'},
// {Name: 'cBezierTriangle', Actual: shp.cBezierTriangle, Expected: 'BezierTriangle'},
//
// // Curves Generated by Other Curves
// {Name: 'cCaustic', Actual: shp.cCaustic, Expected: 'Caustic'},
// {Name: 'cCatacaustic', Actual: shp.cCatacaustic, Expected: 'Catacaustic'},
// {Name: 'cDiacaustic', Actual: shp.cDiacaustic, Expected: 'Diacaustic'},
// {Name: 'cCissoid', Actual: shp.cCissoid, Expected: 'Cissoid'},
// {Name: 'cConchoid', Actual: shp.cConchoid, Expected: 'Conchoid'},
// {Name: 'cEvolute', Actual: shp.cEvolute, Expected: 'Evolute'},
// {Name: 'cGlissette', Actual: shp.cGlissette, Expected: 'Glissette'},
// {Name: 'cInverseCurve', Actual: shp.cInverseCurve, Expected: 'InverseCurve'},
// {Name: 'cInvolute', Actual: shp.cInvolute, Expected: 'Involute'},
// {Name: 'cIsoptic', Actual: shp.cIsoptic, Expected: 'Isoptic'},
// {Name: 'cOrthoptic', Actual: shp.cOrthoptic, Expected: 'Orthoptic'},
// {Name: 'cOrthotomic', Actual: shp.cOrthotomic, Expected: 'Orthotomic'},
// {Name: 'cNegativePedalCurve', Actual: shp.cNegativePedalCurve, Expected: 'NegativePedalCurve'},
// {Name: 'cPedalCurve', Actual: shp.cPedalCurve, Expected: 'PedalCurve'},
// {Name: 'cParallelCurve', Actual: shp.cParallelCurve, Expected: 'ParallelCurve'},
// {Name: 'cRadialCurve', Actual: shp.cRadialCurve, Expected: 'RadialCurve'},
// {Name: 'cRoulette', Actual: shp.cRoulette, Expected: 'Roulette'},
// {Name: 'cStrophoid', Actual: shp.cStrophoid, Expected: 'Strophoid'},
//
// // Space Curves
// {Name: 'cConchospiral', Actual: shp.cConchospiral, Expected: 'Conchospiral'},
// {Name: 'cHelix', Actual: shp.cHelix, Expected: 'Helix'},
// {Name: 'cTendrilPerversion', Actual: shp.cTendrilPerversion, Expected: 'TendrilPerversion'},
// {Name: 'cHemihelix', Actual: shp.cHemihelix, Expected: 'Hemihelix'},
// {Name: 'cSeiffertsSpiral', Actual: shp.cSeiffertsSpiral, Expected: 'SeiffertsSpiral'},
// {Name: 'cSlinkySpiral', Actual: shp.cSlinkySpiral, Expected: 'SlinkySpiral'},
// {Name: 'cTwistedCubic', Actual: shp.cTwistedCubic, Expected: 'TwistedCubic'},
// {Name: 'cVivianisCurve', Actual: shp.cVivianisCurve, Expected: 'VivianisCurve'},
//
// // Surfaces in 3D Space
// {Name: 'cQuadricSurfaces', Actual: shp.cQuadricSurfaces, Expected: 'QuadricSurfaces'},
// {Name: 'cCone', Actual: shp.cCone, Expected: 'Cone'},
// {Name: 'cCylinder', Actual: shp.cCylinder, Expected: 'Cylinder'},
// {Name: 'cEllipsoid', Actual: shp.cEllipsoid, Expected: 'Ellipsoid'},
// {Name: 'cSpheroid', Actual: shp.cSpheroid, Expected: 'Spheroid'},
// {Name: 'cSphere', Actual: shp.cSphere, Expected: 'Sphere'},
// {Name: 'cHyperboloid', Actual: shp.cHyperboloid, Expected: 'Hyperboloid'},
// {Name: 'cParaboloid', Actual: shp.cParaboloid, Expected: 'Paraboloid'},
// {Name: 'cMobiusStrip', Actual: shp.cMobiusStrip, Expected: 'MobiusStrip'},
// {Name: 'cTorus', Actual: shp.cTorus, Expected: 'Torus'},
//
// // Minimal Surfaces
// {Name: 'cCatalansMinimalSurface', Actual: shp.cCatalansMinimalSurface, Expected: 'CatalansMinimalSurface'},
// {Name: 'cCostasMinimalSurface', Actual: shp.cCostasMinimalSurface, Expected: 'CostasMinimalSurface'},
// {Name: 'cCatenoid', Actual: shp.cCatenoid, Expected: 'Catenoid'},
// {Name: 'cEnneperSurface', Actual: shp.cEnneperSurface, Expected: 'EnneperSurface'},
// {Name: 'cGyroid', Actual: shp.cGyroid, Expected: 'Gyroid'},
// {Name: 'cHelicoid', Actual: shp.cHelicoid, Expected: 'Helicoid'},
// {Name: 'cLidinoid', Actual: shp.cLidinoid, Expected: 'Lidinoid'},
// {Name: 'cRiemannsMinimalSurface', Actual: shp.cRiemannsMinimalSurface, Expected: 'RiemannsMinimalSurface'},
// {Name: 'cSaddleTower', Actual: shp.cSaddleTower, Expected: 'SaddleTower'},
// {Name: 'cScherkSurface', Actual: shp.cScherkSurface, Expected: 'ScherkSurface'},
// {Name: 'cSchwarzMinimalSurface', Actual: shp.cSchwarzMinimalSurface, Expected: 'SchwarzMinimalSurface'},
// {Name: 'cTriplyPeriodicMinimalSurface', Actual: shp.cTriplyPeriodicMinimalSurface, Expected: 'TriplyPeriodicMinimalSurface'},
//
// // Non-Orientable Surfaces
// {Name: 'cKleinBottle', Actual: shp.cKleinBottle, Expected: 'KleinBottle'},
// {Name: 'cRealProjectivePlane', Actual: shp.cRealProjectivePlane, Expected: 'RealProjectivePlane'},
// {Name: 'cCrossCap', Actual: shp.cCrossCap, Expected: 'CrossCap'},
// {Name: 'cRomanSurface', Actual: shp.cRomanSurface, Expected: 'RomanSurface'},
// {Name: 'cBoysSurface', Actual: shp.cBoysSurface, Expected: 'BoysSurface'},
//
// // Quadrics
// {Name: 'cOblateSpheroid', Actual: shp.cOblateSpheroid, Expected: 'OblateSpheroid'},
// {Name: 'cHyperboloidOfOneSheet', Actual: shp.cHyperboloidOfOneSheet, Expected: 'HyperboloidOfOneSheet'},
// {Name: 'cHyperboloidOfTwoSheets', Actual: shp.cHyperboloidOfTwoSheets, Expected: 'HyperboloidOfTwoSheets'},
// {Name: 'cHyperbolicParaboloid', Actual: shp.cHyperbolicParaboloid, Expected: 'HyperbolicParaboloid'},
// {Name: 'cSphericon', Actual: shp.cSphericon, Expected: 'Sphericon'},
// {Name: 'cOloid', Actual: shp.cOloid, Expected: 'Oloid'},
//
// // Pseudospherical Surfaces
// {Name: 'cDinisSurface', Actual: shp.cDinisSurface, Expected: 'DinisSurface'},
// {Name: 'cPseudosphere', Actual: shp.cPseudosphere, Expected: 'Pseudosphere'},
//
// // Algebraic Surfaces
// {Name: 'cCayleyCubic', Actual: shp.cCayleyCubic, Expected: 'CayleyCubic'},
// {Name: 'cBarthSextic', Actual: shp.cBarthSextic, Expected: 'BarthSextic'},
// {Name: 'cClebschCubic', Actual: shp.cClebschCubic, Expected: 'ClebschCubic'},
// {Name: 'cMonkeySaddle', Actual: shp.cMonkeySaddle, Expected: 'MonkeySaddle'},
// {Name: 'cDupinCyclide', Actual: shp.cDupinCyclide, Expected: 'DupinCyclide'},
// {Name: 'cWhitneyUmbrella', Actual: shp.cWhitneyUmbrella, Expected: 'WhitneyUmbrella'},
//
// // Miscellaneous Surfaces
// {Name: 'cRightConoid', Actual: shp.cRightConoid, Expected: 'RightConoid'},
//
// // Fractals
// {Name: 'cApollonianGasket', Actual: shp.cApollonianGasket, Expected: 'ApollonianGasket'},
// {Name: 'cApollonianSpherePacking', Actual: shp.cApollonianSpherePacking, Expected: 'ApollonianSpherePacking'},
// {Name: 'cBlancmangeCurve', Actual: shp.cBlancmangeCurve, Expected: 'BlancmangeCurve'},
// {Name: 'cCantorDust', Actual: shp.cCantorDust, Expected: 'CantorDust'},
// {Name: 'cCantorSet', Actual: shp.cCantorSet, Expected: 'CantorSet'},
// {Name: 'cCantorTesseract', Actual: shp.cCantorTesseract, Expected: 'CantorTesseract'},
// {Name: 'cCircleInversionFractal', Actual: shp.cCircleInversionFractal, Expected: 'CircleInversionFractal'},
// {Name: 'cDeRhamCurve', Actual: shp.cDeRhamCurve, Expected: 'DeRhamCurve'},
// {Name: 'cDouadyRabbit', Actual: shp.cDouadyRabbit, Expected: 'DouadyRabbit'},
// {Name: 'cDragonCurve', Actual: shp.cDragonCurve, Expected: 'DragonCurve'},
// {Name: 'cFibonacciWordFractal', Actual: shp.cFibonacciWordFractal, Expected: 'FibonacciWordFractal'},
// {Name: 'cFlameFractal', Actual: shp.cFlameFractal, Expected: 'FlameFractal'},
// {Name: 'cFractalCurve', Actual: shp.cFractalCurve, Expected: 'FractalCurve'},
// {Name: 'cGosperCurve', Actual: shp.cGosperCurve, Expected: 'GosperCurve'},
// {Name: 'cGosperIsland', Actual: shp.cGosperIsland, Expected: 'GosperIsland'},
// {Name: 'cHFractal', Actual: shp.cHFractal, Expected: 'HFractal'},
// {Name: 'cHenonMap', Actual: shp.cHenonMap, Expected: 'HenonMap'},
// {Name: 'cHexaflake', Actual: shp.cHexaflake, Expected: 'Hexaflake'},
// {Name: 'cHilbertCurve', Actual: shp.cHilbertCurve, Expected: 'HilbertCurve'},
// {Name: 'cIkedaMapAttractor', Actual: shp.cIkedaMapAttractor, Expected: 'IkedaMapAttractor'},
// {Name: 'cIteratedFunctionSystem', Actual: shp.cIteratedFunctionSystem, Expected: 'IteratedFunctionSystem'},
// {Name: 'cJerusalemCube', Actual: shp.cJerusalemCube, Expected: 'JerusalemCube'},
// {Name: 'cJuliaSet', Actual: shp.cJuliaSet, Expected: 'JuliaSet'},
// {Name: 'cKochCurve', Actual: shp.cKochCurve, Expected: 'KochCurve'},
// {Name: 'cKochSnowflake', Actual: shp.cKochSnowflake, Expected: 'KochSnowflake'},
// {Name: 'cLSystem', Actual: shp.cLSystem, Expected: 'LSystem'},
// {Name: 'cLevyCCurve', Actual: shp.cLevyCCurve, Expected: 'LevyCCurve'},
// {Name: 'cFeigenbaumAttractor', Actual: shp.cFeigenbaumAttractor, Expected: 'FeigenbaumAttractor'},
// {Name: 'cLorenzAttractor', Actual: shp.cLorenzAttractor, Expected: 'LorenzAttractor'},
// {Name: 'cLyapunovFractal', Actual: shp.cLyapunovFractal, Expected: 'LyapunovFractal'},
// {Name: 'cMandelbrotSet', Actual: shp.cMandelbrotSet, Expected: 'MandelbrotSet'},
// {Name: 'cMandelbrotTree', Actual: shp.cMandelbrotTree, Expected: 'MandelbrotTree'},
// {Name: 'cMandelbulb', Actual: shp.cMandelbulb, Expected: 'Mandelbulb'},
// {Name: 'cMengerSponge', Actual: shp.cMengerSponge, Expected: 'MengerSponge'},
// {Name: 'cMonkeysTree', Actual: shp.cMonkeysTree, Expected: 'MonkeysTree'},
// {Name: 'cMooreCurve', Actual: shp.cMooreCurve, Expected: 'MooreCurve'},
// {Name: 'cNFlake', Actual: shp.cNFlake, Expected: 'NFlake'},
// {Name: 'cPascalTriangle', Actual: shp.cPascalTriangle, Expected: 'PascalTriangle'},
// {Name: 'cPeanoCurve', Actual: shp.cPeanoCurve, Expected: 'PeanoCurve'},
// {Name: 'cPenroseTiling', Actual: shp.cPenroseTiling, Expected: 'PenroseTiling'},
// {Name: 'cPinwheelTiling', Actual: shp.cPinwheelTiling, Expected: 'PinwheelTiling'},
// {Name: 'cPythagorasTree', Actual: shp.cPythagorasTree, Expected: 'PythagorasTree'},
// {Name: 'cRauzyFractal', Actual: shp.cRauzyFractal, Expected: 'RauzyFractal'},
// {Name: 'cRosslerAttractor', Actual: shp.cRosslerAttractor, Expected: 'RosslerAttractor'},
// {Name: 'cSierpinskiArrowheadCurve', Actual: shp.cSierpinskiArrowheadCurve, Expected: 'SierpinskiArrowheadCurve'},
// {Name: 'cSierpinskiCarpet', Actual: shp.cSierpinskiCarpet, Expected: 'SierpinskiCarpet'},
// {Name: 'cSierpinskiCurve', Actual: shp.cSierpinskiCurve, Expected: 'SierpinskiCurve'},
// {Name: 'cSierpinskiTriangle', Actual: shp.cSierpinskiTriangle, Expected: 'SierpinskiTriangle'},
// {Name: 'cSmithVolterraCantorSet', Actual: shp.cSmithVolterraCantorSet, Expected: 'SmithVolterraCantorSet'},
// {Name: 'cTSquare', Actual: shp.cTSquare, Expected: 'TSquare'},
// {Name: 'cTakagiCurve', Actual: shp.cTakagiCurve, Expected: 'TakagiCurve'},
// {Name: 'cTriflake', Actual: shp.cTriflake, Expected: 'Triflake'},
// {Name: 'cVicsekFractal', Actual: shp.cVicsekFractal, Expected: 'VicsekFractal'},
// {Name: 'cVonKochCurve', Actual: shp.cVonKochCurve, Expected: 'VonKochCurve'},
// {Name: 'cWeierstrassFunction', Actual: shp.cWeierstrassFunction, Expected: 'WeierstrassFunction'},
// {Name: 'cZOrderCurve', Actual: shp.cZOrderCurve, Expected: 'ZOrderCurve'},
//
// // Random Fractals
// {Name: 'cVonKochCurveWithRandomInterval', Actual: shp.cVonKochCurveWithRandomInterval, Expected: 'VonKochCurveWithRandomInterval'},
// {Name: 'cVonKochCurveWithRandomOrientation', Actual: shp.cVonKochCurveWithRandomOrientation, Expected: 'VonKochCurveWithRandomOrientation'},
// {Name: 'cBoundaryOfBrownianMotion', Actual: shp.cBoundaryOfBrownianMotion, Expected: 'BoundaryOfBrownianMotion'},
// {Name: 'c2DPolymer', Actual: shp.c2DPolymer, Expected: '2DPolymer'},
// {Name: 'cPercolationFrontIn2D', Actual: shp.cPercolationFrontIn2D, Expected: 'PercolationFrontIn2D'},
// {Name: 'cCorrosionFrontIn2D', Actual: shp.cCorrosionFrontIn2D, Expected: 'CorrosionFrontIn2D'},
// {Name: 'cDiffusionLimitedAggregation', Actual: shp.cDiffusionLimitedAggregation, Expected: 'DiffusionLimitedAggregation'},
// {Name: 'cRandomWalkWithNoSelfIntersection', Actual: shp.cRandomWalkWithNoSelfIntersection, Expected: 'RandomWalkWithNoSelfIntersection'},
// {Name: 'c3DPolymer', Actual: shp.c3DPolymer, Expected: '3DPolymer'},
// {Name: 'c2DPercolationClusterHull', Actual: shp.c2DPercolationClusterHull, Expected: '2DPercolationClusterHull'},
// {Name: 'c2DPercolationCluster', Actual: shp.c2DPercolationCluster, Expected: '2DPercolationCluster'},
// {Name: 'cBrownianMotion', Actual: shp.cBrownianMotion, Expected: 'BrownianMotion'},
// {Name: 'cLichtenbergFigure', Actual: shp.cLichtenbergFigure, Expected: 'LichtenbergFigure'},
// {Name: 'cPercolationTheory', Actual: shp.cPercolationTheory, Expected: 'PercolationTheory'},
// {Name: 'cMultiplicativeCascade', Actual: shp.cMultiplicativeCascade, Expected: 'MultiplicativeCascade'},
//
// // 2D Regular Polytopes
// {Name: 'cPolygon', Actual: shp.cPolygon, Expected: 'Polygon'},
// {Name: 'cEquilateral', Actual: shp.cEquilateral, Expected: 'Equilateral'},
// {Name: 'cCyclicPolygon', Actual: shp.cCyclicPolygon, Expected: 'CyclicPolygon'},
// {Name: 'cConvexPolygon', Actual: shp.cConvexPolygon, Expected: 'ConvexPolygon'},
// {Name: 'cStarPolygon', Actual: shp.cStarPolygon, Expected: 'StarPolygon'},
// {Name: 'cPentagram', Actual: shp.cPentagram, Expected: 'Pentagram'},
//
// // 2D Convex Polytopes
// {Name: 'cRegularPolygon', Actual: shp.cRegularPolygon, Expected: 'RegularPolygon'},
// {Name: 'cEquilateralTriangle', Actual: shp.cEquilateralTriangle, Expected: 'EquilateralTriangle'},
// {Name: 'cSimplex', Actual: shp.cSimplex, Expected: 'Simplex'},
// {Name: 'cCrossPolytope', Actual: shp.cCrossPolytope, Expected: 'CrossPolytope'},
// {Name: 'cHypercube', Actual: shp.cHypercube, Expected: 'Hypercube'},
// {Name: 'cPentagon', Actual: shp.cPentagon, Expected: 'Pentagon'},
// {Name: 'cEnneagon', Actual: shp.cEnneagon, Expected: 'Enneagon'},
// {Name: 'cDecagon', Actual: shp.cDecagon, Expected: 'Decagon'},
// {Name: 'cHendecagon', Actual: shp.cHendecagon, Expected: 'Hendecagon'},
// {Name: 'cDodecagon', Actual: shp.cDodecagon, Expected: 'Dodecagon'},
// {Name: 'cTridecagon', Actual: shp.cTridecagon, Expected: 'Tridecagon'},
// {Name: 'cTetradecagon', Actual: shp.cTetradecagon, Expected: 'Tetradecagon'},
// {Name: 'cPentadecagon', Actual: shp.cPentadecagon, Expected: 'Pentadecagon'},
// {Name: 'cHexadecagon', Actual: shp.cHexadecagon, Expected: 'Hexadecagon'},
// {Name: 'cHeptadecagon', Actual: shp.cHeptadecagon, Expected: 'Heptadecagon'},
// {Name: 'cOctadecagon', Actual: shp.cOctadecagon, Expected: 'Octadecagon'},
// {Name: 'cEnneadecagon', Actual: shp.cEnneadecagon, Expected: 'Enneadecagon'},
// {Name: 'cIcosagon', Actual: shp.cIcosagon, Expected: 'Icosagon'},
// {Name: 'cHectogon', Actual: shp.cHectogon, Expected: 'Hectogon'},
// {Name: 'cChiliagon', Actual: shp.cChiliagon, Expected: 'Chiliagon'},
//
// // 2D Degenerate Spherical Polytopes
// {Name: 'cMonogon', Actual: shp.cMonogon, Expected: 'Monogon'},
// {Name: 'cDigon', Actual: shp.cDigon, Expected: 'Digon'},
//
// // 2D Non-Convex Polytopes
// {Name: 'cHeptagram', Actual: shp.cHeptagram, Expected: 'Heptagram'},
// {Name: 'cOctagram', Actual: shp.cOctagram, Expected: 'Octagram'},
// {Name: 'cEnneagram', Actual: shp.cEnneagram, Expected: 'Enneagram'},
// {Name: 'cDecagram', Actual: shp.cDecagram, Expected: 'Decagram'},
//
// // 2D Tessellation Polytopes
// {Name: 'cApeirogon', Actual: shp.cApeirogon, Expected: 'Apeirogon'},
//
// // 3D Regular Polytopes
// {Name: 'cPolyhedron', Actual: shp.cPolyhedron, Expected: 'Polyhedron'},
//
// // 3D Convex Polytopes
// {Name: 'cPlatonicSolid', Actual: shp.cPlatonicSolid, Expected: 'PlatonicSolid'},
// {Name: 'cTetrahedron', Actual: shp.cTetrahedron, Expected: 'Tetrahedron'},
// {Name: 'cOctahedron', Actual: shp.cOctahedron, Expected: 'Octahedron'},
// {Name: 'cDodecahedron', Actual: shp.cDodecahedron, Expected: 'Dodecahedron'},
// {Name: 'cIcosahedron', Actual: shp.cIcosahedron, Expected: 'Icosahedron'},
//
// // 3D Degenerate Spherical Polytopes
// {Name: 'cHosohedron', Actual: shp.cHosohedron, Expected: 'Hosohedron'},
// {Name: 'cDihedron', Actual: shp.cDihedron, Expected: 'Dihedron'},
// {Name: 'cHenagon', Actual: shp.cHenagon, Expected: 'Henagon'},
//
// // 3D Non-Convex Polytopes
// {Name: 'cKeplerPoinsotPolyhedra', Actual: shp.cKeplerPoinsotPolyhedra, Expected: 'KeplerPoinsotPolyhedra'},
// {Name: 'cSmallStellatedDodecahedron', Actual: shp.cSmallStellatedDodecahedron, Expected: 'SmallStellatedDodecahedron'},
// {Name: 'cGreatDodecahedron', Actual: shp.cGreatDodecahedron, Expected: 'GreatDodecahedron'},
// {Name: 'cGreatStellatedDodecahedron', Actual: shp.cGreatStellatedDodecahedron, Expected: 'GreatStellatedDodecahedron'},
// {Name: 'cGreatIcosahedron', Actual: shp.cGreatIcosahedron, Expected: 'GreatIcosahedron'},
//
// // Euclidean Tilings
// {Name: 'cSquareTiling', Actual: shp.cSquareTiling, Expected: 'SquareTiling'},
// {Name: 'cGrid', Actual: shp.cGrid, Expected: 'Grid'},
// {Name: 'cTriangularTiling', Actual: shp.cTriangularTiling, Expected: 'TriangularTiling'},
// {Name: 'cHexagonalTiling', Actual: shp.cHexagonalTiling, Expected: 'HexagonalTiling'},
//
// // Hyperbolic Tilings
// {Name: 'cLobachevskiPlane', Actual: shp.cLobachevskiPlane, Expected: 'LobachevskiPlane'},
// {Name: 'cHyperbolicTiling', Actual: shp.cHyperbolicTiling, Expected: 'HyperbolicTiling'},
//
// // Hyperbolic Star-Tilings
// {Name: 'cOrder7HeptagrammicTiling', Actual: shp.cOrder7HeptagrammicTiling, Expected: 'Order7HeptagrammicTiling'},
// {Name: 'cHeptagrammicOrderHeptagonalTiling', Actual: shp.cHeptagrammicOrderHeptagonalTiling, Expected: 'HeptagrammicOrderHeptagonalTiling'},
// {Name: 'cOrder9EnneagrammicTiling', Actual: shp.cOrder9EnneagrammicTiling, Expected: 'Order9EnneagrammicTiling'},
// {Name: 'cEnneagrammicOrderEnneagonalTiling', Actual: shp.cEnneagrammicOrderEnneagonalTiling, Expected: 'EnneagrammicOrderEnneagonalTiling'},
//
// // 4D Regular Polytopes
// {Name: 'c4DSpaceSimplex', Actual: shp.c4DSpaceSimplex, Expected: '4DSpaceSimplex'},
// {Name: 'c4DHypercube', Actual: shp.c4DHypercube, Expected: '4DHypercube'},
// {Name: 'c4DCrossPolytope', Actual: shp.c4DCrossPolytope, Expected: '4DCrossPolytope'},
// {Name: 'c24Cell', Actual: shp.c24Cell, Expected: '24Cell'},
// {Name: 'c120Cell', Actual: shp.c120Cell, Expected: '120Cell'},
// {Name: 'c600Cell', Actual: shp.c600Cell, Expected: '600Cell'},
//
// // 4D Degenerate Spherical Polytopes
// {Name: 'cDitope', Actual: shp.cDitope, Expected: 'Ditope'},
// {Name: 'cHosotope', Actual: shp.cHosotope, Expected: 'Hosotope'},
// {Name: 'c3Sphere', Actual: shp.c3Sphere, Expected: '3Sphere'},
// {Name: 'cHyperSphere', Actual: shp.cHyperSphere, Expected: 'HyperSphere'},
//
// // 4D Non-Convex Polytopes
// {Name: 'cIcosahedral120Cell', Actual: shp.cIcosahedral120Cell, Expected: 'Icosahedral120Cell'},
// {Name: 'cSmallStellated120Cell', Actual: shp.cSmallStellated120Cell, Expected: 'SmallStellated120Cell'},
// {Name: 'cGreat120Cell', Actual: shp.cGreat120Cell, Expected: 'Great120Cell'},
// {Name: 'cGrand120Cell', Actual: shp.cGrand120Cell, Expected: 'Grand120Cell'},
// {Name: 'cGreatStellated120Cell', Actual: shp.cGreatStellated120Cell, Expected: 'GreatStellated120Cell'},
// {Name: 'cGrandStellated120Cell', Actual: shp.cGrandStellated120Cell, Expected: 'GrandStellated120Cell'},
// {Name: 'cGreatGrand120Cell', Actual: shp.cGreatGrand120Cell, Expected: 'GreatGrand120Cell'},
// {Name: 'cGreatIcosahedral120Cell', Actual: shp.cGreatIcosahedral120Cell, Expected: 'GreatIcosahedral120Cell'},
// {Name: 'cGrand600Cell', Actual: shp.cGrand600Cell, Expected: 'Grand600Cell'},
// {Name: 'cGreatGrandStellated120Cell', Actual: shp.cGreatGrandStellated120Cell, Expected: 'GreatGrandStellated120Cell'},
//
// // Tessellations of Euclidean 3D
// {Name: 'cHoneycomb', Actual: shp.cHoneycomb, Expected: 'Honeycomb'},
// {Name: 'cCubicHoneycomb', Actual: shp.cCubicHoneycomb, Expected: 'CubicHoneycomb'},
//
// // Degenerate tessellations of Euclidean 3D
// {Name: 'cOrder2ApeirogonalTiling', Actual: shp.cOrder2ApeirogonalTiling, Expected: 'Order2ApeirogonalTiling'},
// {Name: 'cApeirogonalHosohedron', Actual: shp.cApeirogonalHosohedron, Expected: 'ApeirogonalHosohedron'},
// {Name: 'cOrder4SquareHosohedralHoneycomb', Actual: shp.cOrder4SquareHosohedralHoneycomb, Expected: 'Order4SquareHosohedralHoneycomb'},
// {Name: 'cOrder6TriangularHosohedralHoneycomb', Actual: shp.cOrder6TriangularHosohedralHoneycomb, Expected: 'Order6TriangularHosohedralHoneycomb'},
// {Name: 'cHexagonalHosohedralHoneycomb', Actual: shp.cHexagonalHosohedralHoneycomb, Expected: 'HexagonalHosohedralHoneycomb'},
// {Name: 'cOrder2SquareTilingHoneycomb', Actual: shp.cOrder2SquareTilingHoneycomb, Expected: 'Order2SquareTilingHoneycomb'},
// {Name: 'cOrder2TriangularTilingHoneycomb', Actual: shp.cOrder2TriangularTilingHoneycomb, Expected: 'Order2TriangularTilingHoneycomb'},
// {Name: 'cOrder2HexagonalTilingHoneycomb', Actual: shp.cOrder2HexagonalTilingHoneycomb, Expected: 'Order2HexagonalTilingHoneycomb'},
//
// // Tessellations of Hyperbolic 3D
// {Name: 'cOrder4DodecahedralHoneycomb', Actual: shp.cOrder4DodecahedralHoneycomb, Expected: 'Order4DodecahedralHoneycomb'},
// {Name: 'cOrder5DodecahedralHoneycomb', Actual: shp.cOrder5DodecahedralHoneycomb, Expected: 'Order5DodecahedralHoneycomb'},
// {Name: 'cOrder5CubicHoneycomb', Actual: shp.cOrder5CubicHoneycomb, Expected: 'Order5CubicHoneycomb'},
// {Name: 'cIcosahedralHoneycomb', Actual: shp.cIcosahedralHoneycomb, Expected: 'IcosahedralHoneycomb'},
// {Name: 'cOrder3IcosahedralHoneycomb', Actual: shp.cOrder3IcosahedralHoneycomb, Expected: 'Order3IcosahedralHoneycomb'},
// {Name: 'cOrder4OctahedralHoneycomb', Actual: shp.cOrder4OctahedralHoneycomb, Expected: 'Order4OctahedralHoneycomb'},
// {Name: 'cTriangularTilingHoneycomb', Actual: shp.cTriangularTilingHoneycomb, Expected: 'TriangularTilingHoneycomb'},
// {Name: 'cSquareTilingHoneycomb', Actual: shp.cSquareTilingHoneycomb, Expected: 'SquareTilingHoneycomb'},
// {Name: 'cOrder4SquareTilingHoneycomb', Actual: shp.cOrder4SquareTilingHoneycomb, Expected: 'Order4SquareTilingHoneycomb'},
// {Name: 'cOrder6TetrahedralHoneycomb', Actual: shp.cOrder6TetrahedralHoneycomb, Expected: 'Order6TetrahedralHoneycomb'},
// {Name: 'cOrder6CubicHoneycomb', Actual: shp.cOrder6CubicHoneycomb, Expected: 'Order6CubicHoneycomb'},
// {Name: 'cOrder6DodecahedralHoneycomb', Actual: shp.cOrder6DodecahedralHoneycomb, Expected: 'Order6DodecahedralHoneycomb'},
// {Name: 'cHexagonalTilingHoneycomb', Actual: shp.cHexagonalTilingHoneycomb, Expected: 'HexagonalTilingHoneycomb'},
// {Name: 'cOrder4HexagonalTilingHoneycomb', Actual: shp.cOrder4HexagonalTilingHoneycomb, Expected: 'Order4HexagonalTilingHoneycomb'},
// {Name: 'cOrder5HexagonalTilingHoneycomb', Actual: shp.cOrder5HexagonalTilingHoneycomb, Expected: 'Order5HexagonalTilingHoneycomb'},
// {Name: 'cOrder6HexagonalTilingHoneycomb', Actual: shp.cOrder6HexagonalTilingHoneycomb, Expected: 'Order6HexagonalTilingHoneycomb'},
//
// // 5D Regular Polytopes and Higher
// {Name: 'c5Polytope', Actual: shp.c5Polytope, Expected: '5Polytope'},
// {Name: 'cTetracomb', Actual: shp.cTetracomb, Expected: 'Tetracomb'},
// {Name: 'cSimplexHypercubeCrossPolytope', Actual: shp.cSimplexHypercubeCrossPolytope, Expected: 'SimplexHypercubeCrossPolytope'},
// {Name: 'c5Simplex', Actual: shp.c5Simplex, Expected: '5Simplex'},
// {Name: 'c5Cube', Actual: shp.c5Cube, Expected: '5Cube'},
// {Name: 'c5Orthoplex', Actual: shp.c5Orthoplex, Expected: '5Orthoplex'},
// {Name: 'c6Simplex', Actual: shp.c6Simplex, Expected: '6Simplex'},
// {Name: 'c6Cube', Actual: shp.c6Cube, Expected: '6Cube'},
// {Name: 'c6Orthoplex', Actual: shp.c6Orthoplex, Expected: '6Orthoplex'},
// {Name: 'c7Simplex', Actual: shp.c7Simplex, Expected: '7Simplex'},
// {Name: 'c7Cube', Actual: shp.c7Cube, Expected: '7Cube'},
// {Name: 'c7Orthoplex', Actual: shp.c7Orthoplex, Expected: '7Orthoplex'},
// {Name: 'c8Simplex', Actual: shp.c8Simplex, Expected: '8Simplex'},
// {Name: 'c8Cube', Actual: shp.c8Cube, Expected: '8Cube'},
// {Name: 'c8Orthoplex', Actual: shp.c8Orthoplex, Expected: '8Orthoplex'},
// {Name: 'c9Simplex', Actual: shp.c9Simplex, Expected: '9Simplex'},
// {Name: 'c9Cube', Actual: shp.c9Cube, Expected: '9Cube'},
// {Name: 'c9Orthoplex', Actual: shp.c9Orthoplex, Expected: '9Orthoplex'},
// {Name: 'c10Simplex', Actual: shp.c10Simplex, Expected: '10Simplex'},
// {Name: 'c10Cube', Actual: shp.c10Cube, Expected: '10Cube'},
// {Name: 'c10Orthoplex', Actual: shp.c10Orthoplex, Expected: '10Orthoplex'},
// {Name: 'c11Simplex', Actual: shp.c11Simplex, Expected: '11Simplex'},
// {Name: 'c11Cube', Actual: shp.c11Cube, Expected: '11Cube'},
// {Name: 'c11Orthoplex', Actual: shp.c11Orthoplex, Expected: '11Orthoplex'},
//
// // Tessellations of Euclidean 4D
// {Name: 'cHoneycombs', Actual: shp.cHoneycombs, Expected: 'Honeycombs'},
// {Name: 'cTesseracticHoneycomb', Actual: shp.cTesseracticHoneycomb, Expected: 'TesseracticHoneycomb'},
// {Name: 'c16CellHoneycomb', Actual: shp.c16CellHoneycomb, Expected: '16CellHoneycomb'},
// {Name: 'c24CellHoneycomb', Actual: shp.c24CellHoneycomb, Expected: '24CellHoneycomb'},
//
// // Tessellations of Euclidean 5D and Higher
// {Name: 'cHypercubicHoneycomb', Actual: shp.cHypercubicHoneycomb, Expected: 'HypercubicHoneycomb'},
// {Name: 'c5CubeHoneycomb', Actual: shp.c5CubeHoneycomb, Expected: '5CubeHoneycomb'},
// {Name: 'c6CubeHoneycomb', Actual: shp.c6CubeHoneycomb, Expected: '6CubeHoneycomb'},
// {Name: 'c7CubeHoneycomb', Actual: shp.c7CubeHoneycomb, Expected: '7CubeHoneycomb'},
// {Name: 'c8CubeHoneycomb', Actual: shp.c8CubeHoneycomb, Expected: '8CubeHoneycomb'},
//
// // Tessellations of Hyperbolic 4D
// {Name: 'cOrder5_5CellHoneycomb', Actual: shp.cOrder5_5CellHoneycomb, Expected: 'Order5_5CellHoneycomb'},
// {Name: 'c120CellHoneycomb', Actual: shp.c120CellHoneycomb, Expected: '120CellHoneycomb'},
// {Name: 'cOrder5TesseracticHoneycomb', Actual: shp.cOrder5TesseracticHoneycomb, Expected: 'Order5TesseracticHoneycomb'},
// {Name: 'cOrder4_120CellHoneycomb', Actual: shp.cOrder4_120CellHoneycomb, Expected: 'Order4_120CellHoneycomb'},
// {Name: 'cOrder5_120CellHoneycomb', Actual: shp.cOrder5_120CellHoneycomb, Expected: 'Order5_120CellHoneycomb'},
// {Name: 'cOrder4_24CellHoneycomb', Actual: shp.cOrder4_24CellHoneycomb, Expected: 'Order4_24CellHoneycomb'},
// {Name: 'cSmallStellated120CellHoneycomb', Actual: shp.cSmallStellated120CellHoneycomb, Expected: 'SmallStellated120CellHoneycomb'},
// {Name: 'cPentagrammicOrder600CellHoneycomb', Actual: shp.cPentagrammicOrder600CellHoneycomb, Expected: 'PentagrammicOrder600CellHoneycomb'},
// {Name: 'cOrder5Icosahedral120CellHoneycomb', Actual: shp.cOrder5Icosahedral120CellHoneycomb, Expected: 'Order5Icosahedral120CellHoneycomb'},
// {Name: 'cGreat120CellHoneycomb', Actual: shp.cGreat120CellHoneycomb, Expected: 'Great120CellHoneycomb'},
//
// // Tessellations of Hyperbolic 5D
// {Name: 'c5OrthoplexHoneycomb', Actual: shp.c5OrthoplexHoneycomb, Expected: '5OrthoplexHoneycomb'},
// {Name: 'c24CellHoneycombHoneycomb', Actual: shp.c24CellHoneycombHoneycomb, Expected: '24CellHoneycombHoneycomb'},
// {Name: 'c16CellHoneycombHoneycomb', Actual: shp.c16CellHoneycombHoneycomb, Expected: '16CellHoneycombHoneycomb'},
//
// // Apeirotopes
// {Name: 'cApeirotope', Actual: shp.cApeirotope, Expected: 'Apeirotope'},
// {Name: 'cApeirohedron', Actual: shp.cApeirohedron, Expected: 'Apeirohedron'},
// {Name: 'cRegularSkewPolyhedron', Actual: shp.cRegularSkewPolyhedron, Expected: 'RegularSkewPolyhedron'},
//
// // Abstract Polytopes
// {Name: 'cAbstractPolytope', Actual: shp.cAbstractPolytope, Expected: 'AbstractPolytope'},
// {Name: 'c11Cell', Actual: shp.c11Cell, Expected: '11Cell'},
// {Name: 'c57Cell', Actual: shp.c57Cell, Expected: '57Cell'},
//
// // 2D with 1D Surface
// {Name: 'cConcavePolygon', Actual: shp.cConcavePolygon, Expected: 'ConcavePolygon'},
// {Name: 'cConstructiblePolygon', Actual: shp.cConstructiblePolygon, Expected: 'ConstructiblePolygon'},
// {Name: 'cEquiangularPolygon', Actual: shp.cEquiangularPolygon, Expected: 'EquiangularPolygon'},
// {Name: 'cEquilateralPolygon', Actual: shp.cEquilateralPolygon, Expected: 'EquilateralPolygon'},
// {Name: 'cPenroseTile', Actual: shp.cPenroseTile, Expected: 'PenroseTile'},
// {Name: 'cPolyform', Actual: shp.cPolyform, Expected: 'Polyform'},
// {Name: 'cBalbis', Actual: shp.cBalbis, Expected: 'Balbis'},
// {Name: 'cGnomon', Actual: shp.cGnomon, Expected: 'Gnomon'},
// {Name: 'cGolygon', Actual: shp.cGolygon, Expected: 'Golygon'},
// {Name: 'cStar', Actual: shp.cStar, Expected: 'Star'},
// {Name: 'cHexagram', Actual: shp.cHexagram, Expected: 'Hexagram'},
// {Name: 'cStarOfDavid', Actual: shp.cStarOfDavid, Expected: 'StarOfDavid'},
// {Name: 'cStarOfLakshmi', Actual: shp.cStarOfLakshmi, Expected: 'StarOfLakshmi'},
//
// // Polygons named for their number of sides
// {Name: 'cAcuteTriangle', Actual: shp.cAcuteTriangle, Expected: 'AcuteTriangle'},
// {Name: 'cIsoscelesTriangle', Actual: shp.cIsoscelesTriangle, Expected: 'IsoscelesTriangle'},
// {Name: 'cObtuseTriangle', Actual: shp.cObtuseTriangle, Expected: 'ObtuseTriangle'},
// {Name: 'cRationalTriangle', Actual: shp.cRationalTriangle, Expected: 'RationalTriangle'},
// {Name: 'cRightTriangle', Actual: shp.cRightTriangle, Expected: 'RightTriangle'},
// {Name: 'c30_60_90Triangle', Actual: shp.c30_60_90Triangle, Expected: '30_60_90Triangle'},
// {Name: 'cIsoscelesRightTriangle', Actual: shp.cIsoscelesRightTriangle, Expected: 'IsoscelesRightTriangle'},
// {Name: 'cKeplerTriangle', Actual: shp.cKeplerTriangle, Expected: 'KeplerTriangle'},
// {Name: 'cScaleneTriangle', Actual: shp.cScaleneTriangle, Expected: 'ScaleneTriangle'},
// {Name: 'cQuadrilateral', Actual: shp.cQuadrilateral, Expected: 'Quadrilateral'},
// {Name: 'cCyclicQuadrilateral', Actual: shp.cCyclicQuadrilateral, Expected: 'CyclicQuadrilateral'},
// {Name: 'cKite', Actual: shp.cKite, Expected: 'Kite'},
// {Name: 'cParallelogram', Actual: shp.cParallelogram, Expected: 'Parallelogram'},
// {Name: 'cRhombus', Actual: shp.cRhombus, Expected: 'Rhombus'},
// {Name: 'cEquilateralParallelogram', Actual: shp.cEquilateralParallelogram, Expected: 'EquilateralParallelogram'},
// {Name: 'cLozenge', Actual: shp.cLozenge, Expected: 'Lozenge'},
// {Name: 'cRhomboid', Actual: shp.cRhomboid, Expected: 'Rhomboid'},
// {Name: 'cTangentialQuadrilateral', Actual: shp.cTangentialQuadrilateral, Expected: 'TangentialQuadrilateral'},
// {Name: 'cTrapezium', Actual: shp.cTrapezium, Expected: 'Trapezium'},
// {Name: 'cIsoscelesTrapezoid', Actual: shp.cIsoscelesTrapezoid, Expected: 'IsoscelesTrapezoid'},
// {Name: 'cRegularPentagon', Actual: shp.cRegularPentagon, Expected: 'RegularPentagon'},
// {Name: 'cLemoineHexagon', Actual: shp.cLemoineHexagon, Expected: 'LemoineHexagon'},
// {Name: 'cRegularOctagon', Actual: shp.cRegularOctagon, Expected: 'RegularOctagon'},
// {Name: 'cRegularDecagon', Actual: shp.cRegularDecagon, Expected: 'RegularDecagon'},
// {Name: 'cTriskaidecagon', Actual: shp.cTriskaidecagon, Expected: 'Triskaidecagon'},
// {Name: 'cTriacontagon', Actual: shp.cTriacontagon, Expected: 'Triacontagon'},
// {Name: 'cTetracontagon', Actual: shp.cTetracontagon, Expected: 'Tetracontagon'},
// {Name: 'cPentacontagon', Actual: shp.cPentacontagon, Expected: 'Pentacontagon'},
// {Name: 'cHexacontagon', Actual: shp.cHexacontagon, Expected: 'Hexacontagon'},
// {Name: 'cHeptacontagon', Actual: shp.cHeptacontagon, Expected: 'Heptacontagon'},
// {Name: 'cOctacontagon', Actual: shp.cOctacontagon, Expected: 'Octacontagon'},
// {Name: 'cEnneacontagon', Actual: shp.cEnneacontagon, Expected: 'Enneacontagon'},
// {Name: 'c257Gon', Actual: shp.c257Gon, Expected: '257Gon'},
// {Name: 'cMyriagon', Actual: shp.cMyriagon, Expected: 'Myriagon'},
// {Name: 'c65537Gon', Actual: shp.c65537Gon, Expected: '65537Gon'},
// {Name: 'cMegagon', Actual: shp.cMegagon, Expected: 'Megagon'},
//
// // Tilings
// {Name: 'cArchimedeanTiling', Actual: shp.cArchimedeanTiling, Expected: 'ArchimedeanTiling'},
// {Name: 'cTruncatedSquareTiling', Actual: shp.cTruncatedSquareTiling, Expected: 'TruncatedSquareTiling'},
// {Name: 'cSnubSquareTiling', Actual: shp.cSnubSquareTiling, Expected: 'SnubSquareTiling'},
// {Name: 'cTrihexagonalTiling', Actual: shp.cTrihexagonalTiling, Expected: 'TrihexagonalTiling'},
// {Name: 'cTruncatedHexagonalTiling', Actual: shp.cTruncatedHexagonalTiling, Expected: 'TruncatedHexagonalTiling'},
// {Name: 'cRhombitriHexagonalTiling', Actual: shp.cRhombitriHexagonalTiling, Expected: 'RhombitriHexagonalTiling'},
// {Name: 'cTruncatedTriHexagonalTiling', Actual: shp.cTruncatedTriHexagonalTiling, Expected: 'TruncatedTriHexagonalTiling'},
// {Name: 'cSnubHexagonalTiling', Actual: shp.cSnubHexagonalTiling, Expected: 'SnubHexagonalTiling'},
// {Name: 'cElongatedTriangularTiling', Actual: shp.cElongatedTriangularTiling, Expected: 'ElongatedTriangularTiling'},
//
// // Uniform Polyhedra
// {Name: 'cHemicube', Actual: shp.cHemicube, Expected: 'Hemicube'},
// {Name: 'cHemiOctahedron', Actual: shp.cHemiOctahedron, Expected: 'HemiOctahedron'},
// {Name: 'cHemiDodecahedron', Actual: shp.cHemiDodecahedron, Expected: 'HemiDodecahedron'},
// {Name: 'cHemiIcosahedron', Actual: shp.cHemiIcosahedron, Expected: 'HemiIcosahedron'},
// {Name: 'cTruncatedTetrahedron', Actual: shp.cTruncatedTetrahedron, Expected: 'TruncatedTetrahedron'},
// {Name: 'cCuboctahedron', Actual: shp.cCuboctahedron, Expected: 'Cuboctahedron'},
// {Name: 'cTruncatedCube', Actual: shp.cTruncatedCube, Expected: 'TruncatedCube'},
// {Name: 'cTruncatedOctahedron', Actual: shp.cTruncatedOctahedron, Expected: 'TruncatedOctahedron'},
// {Name: 'cRhombicubOctahedron', Actual: shp.cRhombicubOctahedron, Expected: 'RhombicubOctahedron'},
// {Name: 'cTruncatedCuboctahedron', Actual: shp.cTruncatedCuboctahedron, Expected: 'TruncatedCuboctahedron'},
// {Name: 'cSnubCube', Actual: shp.cSnubCube, Expected: 'SnubCube'},
// {Name: 'cIcosidodecahedron', Actual: shp.cIcosidodecahedron, Expected: 'Icosidodecahedron'},
// {Name: 'cTruncatedDodecahedron', Actual: shp.cTruncatedDodecahedron, Expected: 'TruncatedDodecahedron'},
// {Name: 'cTruncatedIcosahedron', Actual: shp.cTruncatedIcosahedron, Expected: 'TruncatedIcosahedron'},
// {Name: 'cRhombicosidodecahedron', Actual: shp.cRhombicosidodecahedron, Expected: 'Rhombicosidodecahedron'},
// {Name: 'cTruncatedIcosidodecahedron', Actual: shp.cTruncatedIcosidodecahedron, Expected: 'TruncatedIcosidodecahedron'},
// {Name: 'cSnubDodecahedron', Actual: shp.cSnubDodecahedron, Expected: 'SnubDodecahedron'},
// {Name: 'cPrism', Actual: shp.cPrism, Expected: 'Prism'},
// {Name: 'cAntiprism', Actual: shp.cAntiprism, Expected: 'Antiprism'},
// {Name: 'cCubitruncatedCuboctahedron', Actual: shp.cCubitruncatedCuboctahedron, Expected: 'CubitruncatedCuboctahedron'},
// {Name: 'cCubohemioctahedron', Actual: shp.cCubohemioctahedron, Expected: 'Cubohemioctahedron'},
// {Name: 'cDitrigonalDodecadodecahedron', Actual: shp.cDitrigonalDodecadodecahedron, Expected: 'DitrigonalDodecadodecahedron'},
// {Name: 'cDodecadodecahedron', Actual: shp.cDodecadodecahedron, Expected: 'Dodecadodecahedron'},
// {Name: 'cGreatCubicuboctahedron', Actual: shp.cGreatCubicuboctahedron, Expected: 'GreatCubicuboctahedron'},
// {Name: 'cGreatDirhombicosidodecahedron', Actual: shp.cGreatDirhombicosidodecahedron, Expected: 'GreatDirhombicosidodecahedron'},
// {Name: 'cGreatDisnubDirhombidodecahedron', Actual: shp.cGreatDisnubDirhombidodecahedron, Expected: 'GreatDisnubDirhombidodecahedron'},
// {Name: 'cGreatDitrigonalDodecicosidodecahedron', Actual: shp.cGreatDitrigonalDodecicosidodecahedron, Expected: 'GreatDitrigonalDodecicosidodecahedron'},
// {Name: 'cGreatDitrigonalIcosidodecahedron', Actual: shp.cGreatDitrigonalIcosidodecahedron, Expected: 'GreatDitrigonalIcosidodecahedron'},
// {Name: 'cGreatDodecahemicosahedron', Actual: shp.cGreatDodecahemicosahedron, Expected: 'GreatDodecahemicosahedron'},
// {Name: 'cGreatDodecahemidodecahedron', Actual: shp.cGreatDodecahemidodecahedron, Expected: 'GreatDodecahemidodecahedron'},
// {Name: 'cGreatDodecicosahedron', Actual: shp.cGreatDodecicosahedron, Expected: 'GreatDodecicosahedron'},
// {Name: 'cGreatDodecicosidodecahedron', Actual: shp.cGreatDodecicosidodecahedron, Expected: 'GreatDodecicosidodecahedron'},
// {Name: 'cGreatIcosicosidodecahedron', Actual: shp.cGreatIcosicosidodecahedron, Expected: 'GreatIcosicosidodecahedron'},
// {Name: 'cGreatIcosidodecahedron', Actual: shp.