Ejemplo n.º 1
0
        public static void Main(string[] args)
        {
            var p = new DpxProgram(args);

            try
            {
                p.StartConsole();
                if (p.PrintHelp())
                {
                    return;
                }
                p.ParseProgramArgs();
                var rspn = Dpx.GetDpxAdjGraph(p.BinDir);
                p.AssignPageRank(rspn);
                var json = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(rspn));
                File.WriteAllBytes(Path.Combine(p.LogDirectory, $"{rspn.GetType().Name}.json"), json);
                using (var std = Console.OpenStandardOutput())
                {
                    std.Write(json, 0, json.Length);
                    std.Flush();
                    std.Close();
                }
            }
            catch (Exception ex)
            {
                p.PrintToConsole(ex);
            }
            Thread.Sleep(NfConfig.ThreadSleepTime);
        }
Ejemplo n.º 2
0
        public void TestGetDpxAdjGraph()
        {
            var testInput = new List <Tuple <RankedMetadataTokenAsm, RankedMetadataTokenAsm[]> >();

            var testControl = new[, ]
            {
                { 0, 1, 0, 0 },
                { 1, 0, 1, 0 },
                { 0, 1, 0, 0 },
                { 1, 0, 0, 0 }
            };

            const string ASM_NM_PREFIX = "ASM NAME ";

            for (var i = 0; i < testControl.GetLongLength(0); i++)
            {
                var tt = new RankedMetadataTokenAsm {
                    AssemblyName = $"{ASM_NM_PREFIX} {i:00}"
                };
                var ttList = new List <RankedMetadataTokenAsm>();
                for (var j = 0; j < testControl.GetLongLength(1); j++)
                {
                    if (testControl[i, j] == 1)
                    {
                        ttList.Add(new RankedMetadataTokenAsm {
                            AssemblyName = $"{ASM_NM_PREFIX} {j:00}"
                        });
                    }
                }
                testInput.Add(new Tuple <RankedMetadataTokenAsm, RankedMetadataTokenAsm[]>(tt, ttList.ToArray()));
            }

            var testResult = Dpx.GetDpxAdjGraph(testInput);

            Assert.IsNotNull(testResult);
            Assert.AreNotEqual(MetadataTokenStatus.Error, testResult.St);
            Assert.IsNotNull(testResult.Graph);
            Assert.IsNotNull(testResult.Asms);

            var trGraph = testResult.Graph;

            Assert.AreEqual(testResult.Asms.Length, trGraph.GetLongLength(0));
            Assert.AreEqual(testControl.GetLongLength(0), trGraph.GetLongLength(0));
            Assert.AreEqual(testControl.GetLongLength(1), trGraph.GetLongLength(1));
            for (var i = 0; i < testControl.GetLongLength(0); i++)
            {
                for (var j = 0; j < testControl.GetLongLength(1); j++)
                {
                    Assert.AreEqual(testControl[i, j], trGraph[i, j]);
                }
            }
        }