Ejemplo n.º 1
0
        /// <summary>
        /// Creates a file with all arrangements in the order that is used for the alphabet of the classifier.
        /// </summary>
        public IEnumerable <IList <Arrangement> > Create()
        {
            var orderedPath = Path.Combine(_workingDirectory, "OrderedArrangements.txt");

            if (File.Exists(orderedPath))
            {
                return(File.ReadAllLines(orderedPath).Select(Arrangement.MultipleFromString).Select(a => a.ToList()));
            }

            var words             = new ArrangementWordCreator(_workingDirectory).CreateUnordered();
            var classifierBuilder = new ClassifierBuilder();

            classifierBuilder.SetLanguage(words);

            var nullTransitions = CountNullTransitions(classifierBuilder);
            var ordered         = nullTransitions.Select((n, i) => new { n, i }).OrderBy(p => p.n).Select(p => p.i).ToList();

            var oldArrangements = new CompactAnalyzedDataCreator(_workingDirectory).GetUniqueArrangements().ToList();
            var newArrangements = ordered.Select(i => oldArrangements[i]).ToList();

            var lines = newArrangements.Select(a => string.Join("", a)).ToList();

            File.WriteAllLines(orderedPath, lines);
            return(newArrangements);
        }
        private IStateMachineBuilder GetProgressiveHonorBuilder()
        {
            var words   = new CompactAnalyzedDataCreator(_workingDirectory).CreateHonorWords();
            var builder = new ProgressiveHonorStateMachineBuilder();

            builder.SetLanguage(words);
            return(builder);
        }
        public IEnumerable <int> Create()
        {
            var path = Path.Combine(_workingDirectory, "UnweightedSuitTransitions.txt");

            if (File.Exists(path))
            {
                return(File.ReadAllLines(path).Select(line => Convert.ToInt32(line, CultureInfo.InvariantCulture)));
            }
            var language     = new CompactAnalyzedDataCreator(_workingDirectory).CreateSuitWords();
            var fullLanguage = CreateFullLanguage(language);
            var builder      = new ClassifierBuilder();

            builder.SetLanguage(fullLanguage, 5, 19);
            var transitions = builder.Transitions;
            var lines       = transitions.Select(t => t.ToString(CultureInfo.InvariantCulture));

            File.WriteAllLines(path, lines);
            return(transitions);
        }
        private IStateMachineBuilder GetHonorBuilder()
        {
            var language = new CompactAnalyzedDataCreator(_workingDirectory).CreateHonorWords();

            return(GetClassifierBuilder(language));
        }