public FeatureName()
        {
            //add the features to names here
            FeatureNamePair[] map = new FeatureNamePair[]{
                    new FeatureNamePair(Features.CovUnweighted,"coverage-unweighted"),
                    new FeatureNamePair(Features.CovWeightedSaliency,"coverage-saliency"),
                    new FeatureNamePair(Features.ErrorWeightedSaliency, "error-saliency"),
                    new FeatureNamePair(Features.ErrorUnweighted, "error-unweighted"),
                    new FeatureNamePair(Features.NCov,"names-coverage"),
                    new FeatureNamePair(Features.NCovWeightedSaliency,"names-coverage-saliency"),
                    new FeatureNamePair(Features.NError, "names-error"),
                    new FeatureNamePair(Features.NErrorWeightedSaliency, "names-error-saliency"),
                    new FeatureNamePair(Features.DMin, "diffmin"),
                    new FeatureNamePair(Features.DMax, "diffmax"),
                    new FeatureNamePair(Features.DAvg, "diffavg"),
                    new FeatureNamePair(Features.DClosestAvg, "diffclosestavg"),
                    new FeatureNamePair(Features.NDiffMin, "namesdiffmin"),
                    new FeatureNamePair(Features.NDiffMax, "namesdiffmax"),
                    new FeatureNamePair(Features.NDiffAvg, "namesdiffavg"),
                    new FeatureNamePair(Features.NClosestAvg, "namesdiffclosestavg"),
                    new FeatureNamePair(Features.NSaliencyAvg, "namessaliencyavg"),
                    new FeatureNamePair(Features.NSaliencyMin, "namessaliencymin"),
                    new FeatureNamePair(Features.NSaliencyMax, "namessaliencymax"),
                    new FeatureNamePair(Features.SaliencyDensMin, "saliencydensmin"),
                    new FeatureNamePair(Features.SaliencyDensMax, "saliencydensmax"),
                    new FeatureNamePair(Features.SaliencyDensAvg, "saliencydensavg"),
                    new FeatureNamePair(Features.SaliencyTotal, "saliencytotal"),
                    new FeatureNamePair(Features.SaliencyDensClustMin, "saliencydensclustmin"),
                    new FeatureNamePair(Features.SaliencyDensClustMax, "saliencydensclustmax"),
                    new FeatureNamePair(Features.SaliencyDensClustAvg, "saliencydensclustavg"),
                    new FeatureNamePair(Features.DMaxR, "diffmaxr"),
                    new FeatureNamePair(Features.DMinR, "diffminr"),
                    new FeatureNamePair(Features.DAvgR, "diffavgr"),
                    new FeatureNamePair(Features.DClosestAvgR, "diffclosestavgr"),
                    new FeatureNamePair(Features.PurityMin, "puritymin"),
                    new FeatureNamePair(Features.PurityMax, "puritymax"),
                    new FeatureNamePair(Features.PurityAvg, "purityavg"),
                    new FeatureNamePair(Features.PurityAvgR, "purityavgr"),
                    new FeatureNamePair(Features.PurityMinR, "purityminr"),
                    new FeatureNamePair(Features.PurityMaxR, "puritymaxr"),
                    new FeatureNamePair(Features.Donovan, "donovan"),
                    new FeatureNamePair(Features.NDiffMinR, "namesdiffminr"),
                    new FeatureNamePair(Features.NDiffMaxR, "namesdiffmaxr"),
                    new FeatureNamePair(Features.NDiffAvgR, "namesdiffavgr"),
                    new FeatureNamePair(Features.NClosestAvgR, "namesclosestavgr"),
                    new FeatureNamePair(Features.NSaliencyAvgR, "namessaliencyavgr"),
                    new FeatureNamePair(Features.NSaliencyMaxR, "namessaliencymaxr"),
                    new FeatureNamePair(Features.NSaliencyMinR, "namessaliencyminr"),
                    new FeatureNamePair(Features.ErrorWeightedSegment, "errorwseg"),
                    new FeatureNamePair(Features.ErrorUnweightedSegment, "errorseg"),
                    new FeatureNamePair(Features.ColorsPerSeg, "colorsperseg"),
                    new FeatureNamePair(Features.ColorsPerSegWeighted, "colorspersegw"),
                    new FeatureNamePair(Features.MeanSegError, "meansegerror"),
                    new FeatureNamePair(Features.MeanSegErrorWeighted, "meansegerrorw"),
                    new FeatureNamePair(Features.LCov, "lcov"),
                    new FeatureNamePair(Features.ACov, "acov"),
                    new FeatureNamePair(Features.BCov, "bcov"),
                    new FeatureNamePair(Features.SatCov, "satcov"),

                    new FeatureNamePair(Features.BetweenVar, "betweenvar"),
                    new FeatureNamePair(Features.WithinVar, "withinvar"),
                    new FeatureNamePair(Features.SqErrorUnweighted, "sqerror"),
                    new FeatureNamePair(Features.SqErrorWeightedSaliency, "sqerrorw"),
                    new FeatureNamePair(Features.SqErrorWSeg, "sqerrorwseg"),
                    new FeatureNamePair(Features.SqErrorSeg, "sqerrorseg"),

                    new FeatureNamePair(Features.NErrorSeg, "nerrorseg"),
                    new FeatureNamePair(Features.NErrorWSeg, "nerrorwseg"),

                    new FeatureNamePair(Features.NSqErrorSeg, "nsqerrorseg"),
                    new FeatureNamePair(Features.NSqErrorWSeg, "nsqerrorwseg"),
                    new FeatureNamePair(Features.NSqError, "nsqerror"),
                    new FeatureNamePair(Features.NSqErrorW, "nsqerrorw"),

                    new FeatureNamePair(Features.SoftError, "softerror"),
                    new FeatureNamePair(Features.SoftWError, "softwerror"),
                    new FeatureNamePair(Features.NSoftError, "nsofterror"),
                    new FeatureNamePair(Features.NSoftWError, "nwsofterror"),
                    new FeatureNamePair(Features.SoftErrorSeg, "softerrorseg"),
                    new FeatureNamePair(Features.SoftErrorWSeg, "softerrorwseg"),
                    new FeatureNamePair(Features.NSoftErrorSeg, "nsofterrorseg"),
                    new FeatureNamePair(Features.NSoftErrorWSeg, "nwsofterrorseg"),
                    new FeatureNamePair(Features.NMeanSegError, "nmeansegerror"),
                    new FeatureNamePair(Features.NMeanSegErrorW, "nmeansegerrorw"),
                    new FeatureNamePair(Features.NMeanSegErrorDensity, "nmeansegerrordens"),
                    new FeatureNamePair(Features.MeanSegErrorDensity, "meansegerrordens"),

                    new FeatureNamePair(Features.SoftErrorSegSD, "softerrorsegsd"),
                    new FeatureNamePair(Features.NSoftErrorSegSD, "nsofterrorsegsd"),
                    new FeatureNamePair(Features.SqErrorSegSD, "sqerrorsegsd"),
                    new FeatureNamePair(Features.ErrorSegSD, "errorsegsd"),
                    new FeatureNamePair(Features.NErrorSegSD, "nerrorsegsd"),
                    new FeatureNamePair(Features.NSqErrorSegSD, "nsqerrorsegsd")
                };

            featureToName = new Dictionary<Features, String>();
            nameToFeature = new Dictionary<String, Features>();

            //populate the dictionaries
            foreach (FeatureNamePair pair in map)
            {
                featureToName.Add(pair.Feature, pair.Name);
                nameToFeature.Add(pair.Name, pair.Feature);
            }
        }
        public FeatureName()
        {
            //add the features to names here
            FeatureNamePair[] map = new FeatureNamePair[]{
                    new FeatureNamePair(Features.ErrorWeightedSaliency, "error-pixel-hard-saliency-lab"),
                    new FeatureNamePair(Features.ErrorUnweighted, "error-pixel-hard-uniform-lab"),
                    new FeatureNamePair(Features.NError, "error-pixel-hard-uniform-names"),
                    new FeatureNamePair(Features.NErrorWeightedSaliency, "error-pixel-hard-saliency-names"),
                    new FeatureNamePair(Features.DMin, "diversity-lab-normalizeMax-min"),
                    new FeatureNamePair(Features.DMax, "diversity-lab-normalizeMax-max"),
                    new FeatureNamePair(Features.DAvg, "diversity-lab-normalizeMax-mean"),
                    new FeatureNamePair(Features.DClosestAvg, "diversity-lab-closest"),
                    new FeatureNamePair(Features.NDiffMin, "diversity-names-normalizeMax-min"),
                    new FeatureNamePair(Features.NDiffMax, "diversity-names-normalizeMax-max"),
                    new FeatureNamePair(Features.NDiffAvg, "diversity-names-normalizeMax-mean"),
                    new FeatureNamePair(Features.NClosestAvg, "diversity-names-mean"),
                    new FeatureNamePair(Features.NSaliencyAvg, "nameability-normalizeMax-mean"),
                    new FeatureNamePair(Features.NSaliencyMin, "nameability-normalizeMax-min"),
                    new FeatureNamePair(Features.NSaliencyMax, "nameability-normalizeMax-max"),
                    new FeatureNamePair(Features.SaliencyDensMin, "saliency-swatch-min"),
                    new FeatureNamePair(Features.SaliencyDensMax, "saliency-swatch-max"),
                    new FeatureNamePair(Features.SaliencyDensAvg, "saliency-swatch-mean"),
                    new FeatureNamePair(Features.SaliencyTotal, "saliency-swatch-total"),
                    new FeatureNamePair(Features.SaliencyDensClustMin, "saliency-theme-min"),
                    new FeatureNamePair(Features.SaliencyDensClustMax, "saliency-theme-max"),
                    new FeatureNamePair(Features.SaliencyDensClustAvg, "saliency-theme-mean"),
                    new FeatureNamePair(Features.DMaxR, "diversity-lab-normalizeMean-max"),
                    new FeatureNamePair(Features.DMinR, "diversity-lab-normalizeMean-min"),
                    new FeatureNamePair(Features.DAvgR, "diversity-lab-normalizeMean-mean"),
                    new FeatureNamePair(Features.DClosestAvgR, "diversity-lab-normalizeMean-closest"),
                    new FeatureNamePair(Features.PurityMin, "impurity-normalizeMax-min"),
                    new FeatureNamePair(Features.PurityMax, "impurity-normalizeMax-max"),
                    new FeatureNamePair(Features.PurityAvg, "impurity-normalizeMax-mean"),
                    new FeatureNamePair(Features.PurityAvgR, "impurity-normalizeMean-mean"),
                    new FeatureNamePair(Features.PurityMinR, "impurity-normalizeMean-min"),
                    new FeatureNamePair(Features.PurityMaxR, "impurity-normalizeMean-max"),
                    new FeatureNamePair(Features.NDiffMinR, "diversity-names-normalizeMean-min"),
                    new FeatureNamePair(Features.NDiffMaxR, "diversity-names-normalizeMean-max"),
                    new FeatureNamePair(Features.NDiffAvgR, "diversity-names-normalizeMean-mean"),
                    new FeatureNamePair(Features.NClosestAvgR, "diversity-names-normalizeMean-closest"),
                    new FeatureNamePair(Features.NSaliencyAvgR, "nameability-normalizeMean-mean"),
                    new FeatureNamePair(Features.NSaliencyMaxR, "nameability-normalizeMean-max"),
                    new FeatureNamePair(Features.NSaliencyMinR, "nameability-normalizeMean-min"),
                    new FeatureNamePair(Features.ErrorWeightedSegment, "error-segment-hard-saliency-lab"),
                    new FeatureNamePair(Features.ErrorUnweightedSegment, "error-segment-hard-uniform-lab"),
                    new FeatureNamePair(Features.ColorsPerSeg, "segmentunique-uniform"),
                    new FeatureNamePair(Features.ColorsPerSegWeighted, "segmentunique-saliency"),
                    new FeatureNamePair(Features.MeanSegError, "error-segmentmean-hard-uniform-lab"),
                    new FeatureNamePair(Features.MeanSegErrorWeighted, "error-segmentmean-hard-saliency-lab"),
                    new FeatureNamePair(Features.LCov, "rangecov-l"),
                    new FeatureNamePair(Features.ACov, "rangecov-a"),
                    new FeatureNamePair(Features.BCov, "rangecov-b"),
                    new FeatureNamePair(Features.SatCov, "rangecov-saturation"),

                    new FeatureNamePair(Features.BetweenVar, "clusterstats-betweenvar"),
                    new FeatureNamePair(Features.WithinVar, "clusterstats-withinvar"),
                    new FeatureNamePair(Features.SqErrorUnweighted, "error-pixel-hard-uniform-sqlab"),
                    new FeatureNamePair(Features.SqErrorWeightedSaliency, "error-pixel-hard-saliency-sqlab"),
                    new FeatureNamePair(Features.SqErrorWSeg, "error-segment-hard-saliency-sqlab"),
                    new FeatureNamePair(Features.SqErrorSeg, "error-segment-hard-uniform-sqlab"),

                    new FeatureNamePair(Features.NErrorSeg, "error-segment-hard-uniform-names"),
                    new FeatureNamePair(Features.NErrorWSeg, "error-segment-hard-saliency-names"),

                    new FeatureNamePair(Features.NSqErrorSeg, "error-segment-hard-uniform-sqnames"),
                    new FeatureNamePair(Features.NSqErrorWSeg, "error-segment-hard-saliency-sqnames"),
                    new FeatureNamePair(Features.NSqError, "error-pixel-hard-uniform-sqnames"),
                    new FeatureNamePair(Features.NSqErrorW, "error-pixel-hard-saliency-sqnames"),

                    new FeatureNamePair(Features.SoftError, "error-pixel-soft-uniform-lab"),
                    new FeatureNamePair(Features.SoftWError, "error-pixel-soft-saliency-lab"),
                    new FeatureNamePair(Features.NSoftError, "error-pixel-soft-uniform-names"),
                    new FeatureNamePair(Features.NSoftWError, "error-pixel-soft-saliency-names"),
                    new FeatureNamePair(Features.SoftErrorSeg, "error-segment-soft-uniform-lab"),
                    new FeatureNamePair(Features.SoftErrorWSeg, "error-segment-soft-saliency-lab"),
                    new FeatureNamePair(Features.NSoftErrorSeg, "error-segment-soft-uniform-names"),
                    new FeatureNamePair(Features.NSoftErrorWSeg, "error-segment-soft-saliency-names"),
                    new FeatureNamePair(Features.NMeanSegError, "error-segmentmean-hard-uniform-names"),
                    new FeatureNamePair(Features.NMeanSegErrorW, "error-segmentmean-hard-saliency-names"),
                    new FeatureNamePair(Features.NMeanSegErrorDensity, "error-segmentmean-hard-saliencydens-names"),
                    new FeatureNamePair(Features.MeanSegErrorDensity, "error-segmentmean-hard-saliencydens-lab"),

                    new FeatureNamePair(Features.SoftErrorSegSD, "error-segment-soft-saliencydens-lab"),
                    new FeatureNamePair(Features.NSoftErrorSegSD, "error-segment-soft-saliencydens-names"),
                    new FeatureNamePair(Features.SqErrorSegSD, "error-segment-hard-saliencydens-sqlab"),
                    new FeatureNamePair(Features.ErrorSegSD, "error-segment-hard-saliencydens-lab"),
                    new FeatureNamePair(Features.NErrorSegSD, "error-segment-hard-saliencydens-names"),
                    new FeatureNamePair(Features.NSqErrorSegSD, "error-segment-hard-saliencydens-sqnames"),
                };

            featureToName = new Dictionary<Features, String>();
            nameToFeature = new Dictionary<String, Features>();

            //populate the dictionaries
            foreach (FeatureNamePair pair in map)
            {
                featureToName.Add(pair.Feature, pair.Name);
                nameToFeature.Add(pair.Name, pair.Feature);
            }
        }