第五十四章 学习常用技能 - 生成测试数据

文章目录

  • 第五十四章 学习常用技能 - 生成测试数据
  • 生成测试数据
    • `Extending %Populate`
    • 使用 `%Populate` 和 `%PopulateUtils` 方法

第五十四章 学习常用技能 - 生成测试数据

生成测试数据

IRIS 包含一个用于为持久类创建伪随机测试数据的实用程序。此类数据的创建称为数据填充,执行此操作的实用程序称为填充实用程序。当测试应用程序的各个部分在处理大量数据时如何运行时,此实用程序特别有用。

populate 实用程序由两个类组成:%Library.Populate%Library.PopulateUtils。这些类提供了生成不同典型形式的数据的方法。例如,一种方法生成随机名称:

 Write ##class(%Library.PopulateUtils).Name()

可以通过两种不同的方式使用填充实用程序。

Extending %Populate

在此方法中,执行以下操作:

  1. %Populate添加到类的超类列表中。
  2. (可选)为类中每个属性的 POPSPEC 参数指定一个值。

对于参数的值,指定一个返回适合用作属性值的值的方法。

Property SSN As %String(POPSPEC = "##class(MyApp.Utils).MakeSSN()");
  1. 编写一个实用方法或例程,以适当的顺序生成数据:独立类在依赖类之前。

在此代码中,要填充类,请执行该类的 Populate() 方法,该方法继承自超类中的 %Populate

此方法生成类的实例并通过调用 %Save() 方法保存它们,这可确保在保存之前验证每个属性。

对于每个属性,此方法生成一个值,如下所示:

a. 如果为该属性指定了 POPSPEC 参数,系统将调用该方法并使用它返回的值。

b. 否则,如果属性名称是诸如 City, State, Name或其他预定义值之类的名称,则系统会为该值调用合适的方法。这些值是硬编码的。

c. 否则,系统会生成一个随机字符串。

  1. 从终端或可能从任何适用的启动代码调用实用程序方法。

这是 SAMPLES 数据库中 Sample.Person 使用的一般方法。

使用 %Populate%PopulateUtils 方法

%Populate%PopulateUtils 类提供了生成特定形式的值的方法。可以通过以下替代数据填充方法直接调用这些方法:

  1. 编写一个实用程序方法,以适当的顺序生成数据:独立类在依赖类之前。

在此代码中,对于每个类,迭代所需的次数。在每次迭代中:

a. 创建一个新对象。
b. 使用合适的随机(或接近随机)值设置每个属性。

为此,请在使用 %Populate或在使用 %PopulateUtils 方法,或者使用自己的方法。

c. 保存对象。

  1. 从终端调用实用程序方法。

这是用于 SAMPLES 数据库中两个 DeepSee 样本的方法,这些样本包含在 DeepSeeHoleFoods 包中。

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

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

相关文章

13私有化属性的一些注意点

目录 一、解释一下几个私有化访问的方式!!! 1.类内部访问: 2.子类访问 3.模块内其他位置访问 4.跨模块访问 二、_y受保护属性的访问 只有跨模块这块需要注意一下! 这个是可以访问的 但是下面这个是不可以的 …

Python皮卡丘

系列文章 序号文章目录直达链接1浪漫520表白代码https://want595.blog.csdn.net/article/details/1306668812满屏表白代码https://want595.blog.csdn.net/article/details/1297945183跳动的爱心https://want595.blog.csdn.net/article/details/1295031234漂浮爱心https://want…

信息化工程测试验收管理制度

1、总则 1.1、目的 为规范XXXXX单位的信息系统建设和工程项目测试验收准则,特制订本管理制度。 1.2、范围 本制度适用于XXXXX单位工程测试验收管理。 1.3、职责 信息系统建设和其他信息系统工程类项目的测试和验收主要由项目负责人负责,必要的时候…

Ai图像绘制模型训练以及应用

Ai图像绘制模型训练以及应用 前言 人工智能(Artificial Intelligence,AI)作为当前IT领域最受关注的热门话题之一,已经应用于各个领域,包括医疗保健、金融、交通和制造业等。其中,图像识别和处理是人工智能…

【数据结构与算法】三种简单排序算法,包括冒泡排序、选择排序、插入排序算法

冒泡排序算法 冒泡排序他是通过双重循环对每一个值进行比较&#xff0c;将小的值向后移动&#xff0c;以达到最终排序的结果&#xff0c;他的时间复杂度为O(n^2)。 /*** 冒泡排序* param arr*/public static void bubbleSort(int[] arr){int l arr.length;for (int i 0; i <…

Element UI怎么安装呢?

安装 :::warning 注意 后续演示将会在 Vue CLI 搭建的 Vue 项目上进行操作。如需要请查看 Vue CLI 安装 ::: 通过 YARN 命令安装 $ yarn add element-ui完整引入 代表一次性引入所有组件&#xff0c;比较省心省事&#xff0c;但是项目的打包体积也会跟着变大。 // main.js…

3.简单场景构建

在新建的项目中&#xff0c;默认存在 Main Camera 和 Directional Light两个对象。若是缺失&#xff0c;可通过选择菜单中的 Game Object->Camera 和 Geme Object->Light->Directional Light进行创建。 1.添加地形及底图 通过在Cesium面板中选择 Cesium World Terrai…

[Spring] Springmvc执行流程

介绍 SpringMVC是一种基于Spring实现了Web MVC设计模式的请求驱动类型的轻量级Web框架&#xff0c;使用了MVC的架构模式思想&#xff0c;将Web层进行指责解耦&#xff0c;并管理应用所需的生命周期&#xff0c;为简化日常开发&#xff0c;提供了很大便利。 组件 组件Dispatche…

VAE模型(详细推导+实例代码)

文章目录 EM算法思路E步M步直观感觉 GMM模型VAEVAE思想从GMM到VAE公式推导重参数VAE神经网络另一个视角的VAE思想为什么引入encoder为什么要重参数噪声与重建 Discrete VAE 本文会从EM算法&#xff0c;GMM模型一步一步的的推导&#xff0c;在过渡到VAE模型&#xff0c;如果有熟…

Excel·VBA使用ADO合并工作簿

之前文章《ExcelVBA合并工作簿&#xff08;7&#xff0c;合并子文件夹同名工作簿中同名工作表&#xff0c;纵向汇总数据&#xff09;》处理合并工作簿问题&#xff0c;代码运行速度比较慢 而《ExcelVBA使用ADO读取工作簿工作表数据》读取数据非常快&#xff0c;那么是否可以使用…

车辆调度算法

参考资料 有什么车辆调度算法的最新研究&#xff0c;比如用强化学习的方法&#xff1f; https://www.zhihu.com/question/312332312 策略算法工程师之路-图优化算法(一)(二分图&最小费用最大流) https://zhuanlan.zhihu.com/p/103825713 模拟退火&#xff08;SA&#xf…

1200*C1. k-LCM (easy version)(找规律)

Problem - 1497C1 - Codeforces 解析&#xff1a; 找规律即可&#xff0c;分为偶数的一半是偶数、偶数的一半是奇数、奇数三种情况 分别为 &#xff08;n/2&#xff0c;n/4&#xff0c;n/4&#xff09;&#xff08;n/2-1&#xff0c;n/2-1&#xff0c;2&#xff09;&#xff08…

多线程并发篇---第六篇

系列文章目录 文章目录 系列文章目录一、说一说自己对于 synchronized 关键字的了解二、说说自己是怎么使用 synchronized 关键字?三、什么是线程安全?Vector是一个线程安全类吗?一、说一说自己对于 synchronized 关键字的了解 synchronized关键字解决的是多个线程之间访问…

常见算法-双骰子游戏(Craps)

常见算法-双骰子游戏&#xff08;Craps&#xff09; 1、说明 一个简单的双骰子游戏&#xff0c;游戏规则如下&#xff1a; 玩家掷两个骰子&#xff0c;点数为1到6&#xff0c; 如果第一次点数和为7或11&#xff0c;则玩家胜&#xff0c;如果点数和为2、3或12&#xff0c;则…

Nlopt在matlab中的配置教程

step1&#xff1a;克隆代码并编译 编译的前提是已经安装好MinGW64 # 使用镜像加速 git clone https://gitclone.com/github.com/stevengj/nloptcd nlopt mkdir build cd build cmake -G"MinGW Makefiles" .. cmake --build .# 注意此处博主在mingw安装目录将mingw3…

windows10下 iperf3测试带宽

iperf3下载网址&#xff1a;iPerf - Download iPerf3 and original iPerf pre-compiled binaries 可以用来测试TCP以及UDP带宽质量 通俗来说是用来测试网速的 准备&#xff1a;两台设备 1. 根据自己的设备选择下载工具&#xff08;两台都要有&#xff0c;这里我用的Window…

vue实现瀑布流

1、在 src 目录下创建 component文件夹&#xff0c;在文件夹中创建 vue文件。 2、在 Vue文件中写入以下内容 <div class"pubu"><div class"left"><div class"pubu-item" v-for"item in left" :key"item.id"…

react antd table表格点击一行选中数据的方法

一、前言 antd的table&#xff0c;默认是点击左边的单选/复选按钮&#xff0c;才能选中一行数据&#xff1b; 现在想实现点击右边的部分&#xff0c;也可以触发操作选中这行数据。 可以使用onRow实现&#xff0c;样例如下。 二、代码 1.表格样式部分 //表格table样式部分{…

JVM面试题:(三)GC和垃圾回收算法

GC: 垃圾回收算法&#xff1a; GC最基础的算法有三种&#xff1a; 标记 -清除算法、复制算法、标记-压缩算法&#xff0c;我们常用的垃圾回收器一般 都采用分代收集算法。 标记 -清除算法&#xff0c;“标记-清除”&#xff08;Mark-Sweep&#xff09;算法&#xff0c;如它的…

右值引用, 完美转发, 万能引用, lambda表达式, 包装器 用法

右值引用&#xff0c;完美转发&#xff0c;万能引用 用法 //链表节点 template <typename T> struct __list_node {//1. __list_node(const T& val T()):_prev(nullptr), _next(nullptr), _val(val){}__list_node(T&& val):_prev(nullptr), _next(nullptr)…