예제 #1
0
        public void CanLoadGraphs(string inputFile, string outputFile)
        {
            var graph = GraphParser.Parse(inputFile);
            //assert that each line produced a node
            var count = File.ReadAllLines(inputFile).Count();

            Assert.AreEqual(graph.Count, count);
        }
예제 #2
0
        public static GraphBlueprint ParseGraphFromString(string input, Func <string, string> includesFunc)
        {
            var gp = new GraphParser(input, includesFunc);
            var r  = gp.Parse();

            LastParsedIncludedSources = gp.IncludedSources;

            return(r);
        }
예제 #3
0
    // Use this for initialization
    void Start()
    {
        int[] vertices = { 1, 2, 3, 4, 5 };
        int[,] edges = { { 1, 2 }, { 1, 3 }, { 1, 4 }, { 2, 3 }, { 3, 5 } };
        GameObject  go          = new GameObject();
        GraphParser graphParser = go.AddComponent <GraphParser>();

        graphParser.Parse(vertices, edges);
    }
예제 #4
0
        public override GraphBlueprint Process(GraphPackage input, ContentProcessorContext context)
        {
            var parser = new GraphParser(input.Content, x => input.Includes.FirstOrDefault(p => GraphBlueprint.IsIncludeMatch(p.Key, x)).Value);

            var gf = parser.Parse();

            BlueprintPreprocessor.ProcessGraph(gf);

            Console.WriteLine("Parsing file with " + gf.LevelNodes.Count + " node definitions");

            return(gf);
        }
예제 #5
0
        public static GraphBlueprint ParseGraphFromFile(string f)
        {
            var path = Path.GetDirectoryName(f) ?? "";

            var includesFunc = GetIncludesFunc(f);

            var gp = new GraphParser(File.ReadAllText(f), includesFunc);
            var r  = gp.Parse();

            LastParsedIncludedSources = gp.IncludedSources;

            return(r);
        }
예제 #6
0
        static void Main(string[] args)
        {
            var graph   = GraphParser.Parse("dijkstraData.txt");
            var results = Search.CalculateShortestPaths(graph);

            var ids = new[] { 7, 37, 59, 82, 99, 115, 133, 165, 188, 197 };

            foreach (var id in ids)
            {
                Console.WriteLine($"id: {id}, distance: {results[id].Distance}");
            }

            Console.ReadLine();
        }
예제 #7
0
        public void CanCalculatePaths(string inputFile, string outputFile)
        {
            var ids       = new[] { 7, 37, 59, 82, 99, 115, 133, 165, 188, 197 };
            var distances = File.ReadAllLines(outputFile)
                            .First()
                            .Split('\t', ' ', ',')
                            .Where(n => !string.IsNullOrWhiteSpace(n))
                            .Select(int.Parse)
                            .ToList();
            var graph   = GraphParser.Parse(inputFile);
            var results = Search.CalculateShortestPaths(graph);

            for (int i = 0; i < ids.Length; i++)
            {
                Assert.AreEqual(distances[i], results[ids[i]].Distance);
            }
        }
예제 #8
0
파일: graph.cs 프로젝트: ningit/vaed
    public static int Main(string[] args)
    {
        if (args.Length != 1)
        {
            Console.Error.WriteLine("No input file.");

            return(3);
        }

        if (!File.Exists(args[0]))
        {
            Console.Error.WriteLine(args[0] + ": no such file.");
        }

        // Parses the file and calls Floyd algorithm

        try {
            var parser = new GraphParser();

            // Gets input data from file
            xreal [,] datos = parser.Parse(File.OpenText(args[0]));

            xreal[,] res = null;

            Console.WriteLine("Input data:");
            Console.WriteLine(String.Join("\t", parser.VertNames));

            PrintMatrix(datos);

            __default.Floyd(datos, out res);

            Console.WriteLine();
            Console.WriteLine("Output data:");

            PrintMatrix(res);
        }

        catch (Exception e)
        {
            Console.ForegroundColor = ConsoleColor.Red;
            Console.Error.WriteLine("Error: " + e.Message);
            Console.ResetColor();
        }

        return(0);
    }