예제 #1
0
        private static DyalogInterpreter CreateInterpreter(string[] codeFiles = null)
        {
            var interpreterSettings = new Dictionary <string, string> {
                ["RUNASSERVICE"] = "2",
                ["MAXWS"]        = "1G"
            };
            var interpreter = new DyalogInterpreter(null, interpreterSettings)
            {
                SingleThreaded  = true,
                DeleteOnUnload  = true,
                UnloadWhenEmpty = false
            };

            if (codeFiles != null)
            {
                var aplc = new CodeFile(interpreter);
                aplc.AttachCodeFiles(codeFiles);
                aplc.Dispose();
            }
            return(interpreter);
        }
예제 #2
0
        private void TestLookUpLength(int length, int slot)
        {
            var interpreter1 = CreateInterpreter();
            var interpreter2 = CreateInterpreter();

            var file = Path.Combine(Path.GetTempPath(), $"LookUp{length}.dwx");

            File.Delete(file);
            var test1 = new CodeFile(interpreter1);

            try {
                test1.CreateLookUp(file, length, slot);
            } finally { }
            Assert.IsTrue(interpreter1.Unload());

            var test2 = new CodeFile(interpreter2);

            try {
                test2.AttachCodeFiles(new[] { file });
                Assert.AreEqual(0, test2.WSCheck());
            } finally { }
            Assert.IsTrue(interpreter2.Unload());
        }