第二十二章 调用Callout Library函数 - 使用过程索引进行测试

文章目录

  • 第二十二章 调用Callout Library函数 - 使用过程索引进行测试
      • 方法 `GetGraph()`
  • 使用进程索引进行测试
      • 使用进程索引测试新版本的“`inputlibrary.dll`”

第二十二章 调用Callout Library函数 - 使用过程索引进行测试

方法 GetGraph()

Method GetGraph(loopsize As %Integer = 100000) As %Status
{// Get an instance of class GraphData and initialize the system indexset graphlib = ##class(User.GraphData).%New()set sc = graphlib.Init()// call functions from both libraries repeatedly// each library is loaded automatically on first callfor count=1:1:loopsize {set midvalue = graphlib.FormatData(^rawdata(count))set flatdata(count) = graphlib.RefineData(midvalue)}// plot results of the previous loopfor count=1:1:loopsize {set x = graphlib.PlotGraph(flatdata(count),0)set y = graphlib.PlotGraph(flatdata(count),x)set ^graph(x,y) = flatdata(count)}//return after unloading all libraries loaded by $ZF(-6)set status = graphlib.Unload()quit 0
}
  • User.GraphData类实例化为graphlib,并调用Init()方法初始化系统索引。此处不一定必须调用此方法,因为只需为 IRIS 实例中的所有进程初始化一次系统索引。
  • 第一个循环间接使用 $ZF(-6) 调用每个库中的函数,并且 $ZF(-6) 在第一次需要时自动加载每个库。库 inputlibrary.dll 在第一次调用 FormatData() 时加载,outputlibrary.dll 在第一次调用 RefineData() 时加载。
  • 第二个循环从已加载的库outputlibrary.dll 中调用PlotGraph()
  • Unload() 的调用间接调用两个库上的 $ZF(-4,4)

使用进程索引进行测试

如前所述,进程索引表在系统索引表之前被搜索,因此可以在进程内使用它来覆盖系统范围的定义。以下示例创建一个进程索引,用于测试上一节中使用的库之一的新版本。

使用进程索引测试新版本的“inputlibrary.dll

   // Initialize the system index and generate output from standard libraryset testlib = ##class(User.GraphData).%New()set sc = testlib.Init()set sc = graphgen.GetGraph()   // get 100000 data items by defaultmerge testgraph1 = ^graphkill ^graph// create process index and test new library with same instance of testprocset sc = $ZF(-4,4,100)   // unload current copy of inputlibset sc = $ZF(-4,8)   // delete existing process index, if anyset sc = $ZF(-4,7,100, "c:\testfiles\newinputlibrary.dll")  // override system indexset sc = graphgen.GetGraph()merge testgraph2 = ^graph// Now compare testdata1 and testdata2
  • 在前三行中,这个测试代码初始化系统索引并生成一个图形,就像前面的例子一样。该图已使用inputlibrary.dll的标准版本(由ID值为100的系统索引条目标识)绘制,并已保存到testgraph1
  • $ZF(-4,4)的调用卸载了inputlibrary.dll,它在系统索引表中由库ID 100标识。
  • 调用$ZF(-4,8)时没有指定库ID,表示当前进程索引表中的所有条目都将被删除。
  • $ZF(-4,7)的调用向进程索引表添加了一个条目,将100设置为测试库newinputlibrary.dll的库ID。这将覆盖系统索引中该ID的条目。库ID 100现在指向newinputlibrary.dll而不是inputlibrary.dll
  • 再次调用GetGraph(),使用User.GraphData的同一个实例。除了inputlibrary.dll的标准版本已经卸载之外,什么都没有改变,所以GetGraph()现在将加载并使用新版本的库。测试然后比较图形testgraph1testgraph2,以验证两个版本产生相同的结果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/618179.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 装饰器可以将代码减少一半

一、说明 这里,我将与您分享一些令人惊叹的 Python 装饰器,它们可以将您的代码减少一半。听起来好得令人难以置信,对吧?好吧,让我向您展示它们是如何工作的以及为什么应该在项目中使用它们。 二、什么是 Python 装饰器…

都是取所有行的某列数据,这个array[:,2]和array[:,2:3]有什么不同呢

效果图 代码 import numpy as nplist [[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15],[16,17,18,19,20],[21,22,23,24,25] ] array np.array(list) print(array) 输出: [[ 1 2 3 4 5][ 6 7 8 9 10][11 12 13 14 15][16 17 18 19 20][21 22 23 24 25]]a arr…

想要安利给所有人的开发工具

Visual Studio Code - 一个轻量级且功能丰富的代码编辑器,支持多种编程语言,拥有强大的插件和工具集。 Git - 一个分布式版本控制系统,可以帮助开发团队协作、跟踪代码变更和管理代码库。 Postman - 一个用于API开发和测试的工具&#xff0…

【上分日记】第369场周赛(分类讨论 + 数学 + 前缀和)

文章目录 前言正文1.3000. 对角线最长的矩形的面积2.3001. 捕获黑皇后需要的最少移动次数3.3002. 移除后集合的最多元素数3.3003. 执行操作后的最大分割数量 总结尾序 前言 终于考完试了,考了四天,也耽搁了四天,这就赶紧来补这场周赛的题了&a…

关于文件上传功能的安全方面的考量

文章目录 场景安全实现 场景 最近做了一个文件上传的功能,下面说进行了哪些方面实现 安全实现 验证登录验证登录用户是否有文件上传接口的权限限制文件大小检验文件后缀,文件头文件单独存储,可以考虑使用第三方服务 比如:七牛云设置文件的rwx权限, rw根…

【Linux实用篇】项目部署 基于Shell脚本自动部署

目录 1. 项目部署 1.1 手动部署项目 1.2 基于Shell脚本自动部署 1.2.1 介绍 1.2.2 推送代码到远程 1.2.3 Git操作 1.2.4 Maven安装 1.2.5 Shell脚本准备 1.2.6 Linux权限 1.2.7 授权并执行脚本 1.2.8 设置静态IP 1. 项目部署 之前我们讲解Linux操作系统时&#xff0…

Dcoker构建部署Java项目过程

目录 前言 一、打包 二、Docker File文件编写 一个简单的Docker File文件 三、上传文件 四、构建镜像 五、运行 六、端口开放 前言 使用Dcoker构建部署Java项目,发布到服务器 一、打包 我这里打包的是item-service这个module,clean-cpmpile-pa…

uniapp 查找不到uview-ui文件怎么办?

用官方的方式总是报:文件查找失败:uview-ui at main.js 解决方案: 1.先安装uview-ui npm install uview-ui 下载成功是这样的: 而不是这样的: 这样的原因是你的项目里没有package.json包,先执行 npm …

Ubuntu平台上C语言利用matio库读取mat文件

一、安装matio库 matio库是一个用于读取和写入MAT文件(MATLAB数据格式)的开源C库。它提供了一组函数和工具,使得在C和C程序中可以方便地读取和写入MAT文件中的数据。MAT文件是MATLAB软件中常用的文件格式,用于存储多维数值数组、…

Qt 调试系统输出报警声以及添加资源

文章目录 前言一、方法1 使用 Qsound1.添加都文件 直接报错2.解决这个错误 添加 QT multimedia3. 加入代码又遇到新的错误小结 二、第二种方法1.引入库2.添加资源2.1依次点击Qt--->Qt Resource File--->Choose2.2给资源文件起个名字,如:res&#…

【每日一题】构造限制重复的字符串

文章目录 Tag题目来源解题思路方法一:贪心空间复杂度: O ( ∑ ) O(\sum) O(∑)。 写在最后 Tag 【贪心】【字符串】【2024-01-13】 题目来源 2182. 构造限制重复的字符串 解题思路 方法一:贪心 思路 解题思想比较简单,利用贪…

【MySQL】:掌握SQL中DDL的数据库定义与操作

🎥 屿小夏 : 个人主页 🔥个人专栏 : MySQL从入门到进阶 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言一. SQL的分类二. DDL数据库操作2.1 查询所有数据库2.2 查询当前数据库2.3 创建数…

[足式机器人]Part2 Dr. CAN学习笔记-Advanced控制理论 Ch04-8 状态观测器设计 Linear Observer Design

本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记-Advanced控制理论 Ch04-8 状态观测器设计 Linear Observer Design

虚幻引擎nDisplay教程:如何同步nDisplay节点与Switchboard + Helix Core

对于使用大型LED屏幕进行拍摄的虚拟制作团队来说,虚幻(Unreal)的nDisplay是一个重要的工具。但是,在nDisplay中将正确版本的文件发送到每个节点会非常耗时。立即阅读本文,您将了解到如何使用Perforce Helix Core版本控…

Linux 系统之部署 ZFile 在线网盘服务

一、ZFile 介绍 1)ZFile 简介 官网:https://www.zfile.vip/ GitHub:https://github.com/zfile-dev/zfile ZFile 是一款基于 Java 的在线网盘程序,支持对接 S3、OneDrive、SharePoint、又拍云、本地存储、FTP 等存储源&#xff0…

【Go】excelize库实现excel导入导出封装(三),基于excel模板导出excel

前言 大家好,这里是符华~ 关于excelize库实现excel导入导出封装,我已经写了两篇了,我想要的功能基本已经实现了,现在还差一个模板导出,这篇文章就来讲讲如何实现用模板导出excel。 前两篇: 【Go】excel…

爬虫-5-数据提取-正则,xpath

#免责声明:本文仅供学习,请遵纪守法。 ԅ(ㅂԅ)

Leetcode 剑指 Offer II 061. 查找和最小的 K 对数字

题目难度: 中等 原题链接 今天继续更新 Leetcode 的剑指 Offer(专项突击版)系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 给定两个以升序排列的整数数组 nums1 和 nums2 , 以及一个整数 k…

使用CloudCompare对obj网格模型转换为pcd/ply点云模型

1.打开CloudCompare,点击文件夹图标,首先先把文件类型选择为.obj,然后再去找预处理的obj网格模型,点击打开。 2.测试打开的obj网格模型如下图: 3.选中obj文件,点击网格上样本点的图标,输入预生成…

探索 C# 中的程序运行目录获取方法

探索 C# 中的程序运行目录获取方法 引言 在 C# 开发中,有时需要确定您的应用程序的运行目录。这可能是为了读取配置文件、存储日志,或者访问与应用程序位于同一目录的其他资源。C# 提供了几种方法来获取当前程序的运行目录。本文将探讨这些方法及其使用…