예제 #1
0
        public async Task TestSetExecutorAsync()
        {
            // arrange
            var pathToLibrary = TestData.SimLibraryDirectory.FullName;
            var simLibrary    = new SimLibrary();

            simLibrary.LoadFrom(pathToLibrary);
            var pathToCode = Path.Combine(pathToLibrary, "InspectExec", "inspect.R");

            // act
            using var managedImport = new ManagedImport(pathToCode, simLibrary);
            using var server        = new RVisServer();
            var client = await server.OpenChannelAsync();

            managedImport.InspectAsync(client).Wait();
            managedImport.SetExecutorAsync(managedImport.UnaryFunctions[0], managedImport.ScalarSets[0], client).Wait();

            // assert
            Assert.AreEqual(managedImport.ExecutorOutput?.NColumns, 3);
            Assert.AreEqual(managedImport.ExecutorParameterCandidates.Count, 2);
            Assert.AreEqual(managedImport.ExecutorValueCandidates.Count, 2);
            Assert.AreEqual(managedImport.ScalarSets.Count, 1);
            Assert.AreEqual(managedImport.UnaryFunctions.Count, 1);
            Assert.AreEqual(managedImport.ValueCandidates.Count, 1);
        }
예제 #2
0
        public async Task TestInspectAsync()
        {
            // arrange
            var pathToLibrary = TestData.SimLibraryDirectory.FullName;
            var simLibrary    = new SimLibrary();

            simLibrary.LoadFrom(pathToLibrary);
            var pathToCode = Path.Combine(pathToLibrary, "InspectTmpl", "inspect.R");

            // act
            using var managedImport = new ManagedImport(pathToCode, simLibrary);
            using var server        = new RVisServer();
            var client = await server.OpenChannelAsync();

            managedImport.InspectAsync(client).Wait();

            // assert
            Assert.AreEqual(managedImport.Scalars.Count, 2);
            Assert.AreEqual(managedImport.ParameterCandidates.Count, 2);
            Assert.AreEqual(managedImport.DataSets.Count, 3);
            Assert.AreEqual(managedImport.ValueCandidates.Count, 3);
            Assert.AreEqual(managedImport.ValueCandidates.Single(vc => vc.Name == "o").ElementCandidates.Count, 3);
        }