CN117744408A - 一种约束求解引擎的测试方法、系统、终端及存储介质 - Google Patents

一种约束求解引擎的测试方法、系统、终端及存储介质 Download PDF

Info

Publication number
CN117744408A
CN117744408A CN202410179774.9A CN202410179774A CN117744408A CN 117744408 A CN117744408 A CN 117744408A CN 202410179774 A CN202410179774 A CN 202410179774A CN 117744408 A CN117744408 A CN 117744408A
Authority
CN
China
Prior art keywords
constraint
sketch data
data
test
sketch
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202410179774.9A
Other languages
English (en)
Other versions
CN117744408B (zh
Inventor
刘向东
涂耀文
江玉萍
幺宝刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Wanyi Digital Technology Co ltd
International Digital Economy Academy IDEA
Original Assignee
Shenzhen Wanyi Digital Technology Co ltd
International Digital Economy Academy IDEA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Wanyi Digital Technology Co ltd, International Digital Economy Academy IDEA filed Critical Shenzhen Wanyi Digital Technology Co ltd
Priority to CN202410179774.9A priority Critical patent/CN117744408B/zh
Publication of CN117744408A publication Critical patent/CN117744408A/zh
Application granted granted Critical
Publication of CN117744408B publication Critical patent/CN117744408B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种约束求解引擎的测试方法、系统、终端及存储介质,所述方法通过获取标准化后的若干草图数据;对各草图数据的约束类型和几何类型进行统计,并对统计后的各草图数据基于约束类型进行分类;根据分类后的各草图数据对约束求解引擎进行性能测试,其中,性能测试包括若干基础测试和扰动测试,不同的约束类型分别对应不同的扰动测试。本发明通过数据标准化,可以实现综合利用不同数据格式的草图数据。并通过多种基础测试和扰动测试对约束求解引擎进行更全面有效的测试,可以支撑高速版本迭代。解决了现有的单元测试方法测试数据单一,难以获得真实的测试结果的问题。

Description

一种约束求解引擎的测试方法、系统、终端及存储介质
技术领域
本发明涉及草图约束求解领域,尤其涉及的是一种约束求解引擎的测试方法、系统、终端及存储介质。
背景技术
约束求解引擎作为CAD(计算机辅助设计)世界2D设计的核心,其算法结果的有效性和正确性决定了计算机辅助设计的效率。传统的单元测试方法过于繁杂,人工成本高,并且无法利用CAD世界的海量数据集,测试数据单一,难以获得真实的测试结果。
因此,现有技术还有待改进和发展。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种约束求解引擎的测试方法、系统、终端及存储介质,旨在解决现有的单元测试方法测试数据单一,难以获得真实的测试结果的问题。
本发明解决问题所采用的技术方案如下:
第一方面,本发明实施例提供一种约束求解引擎的测试方法,所述方法包括:
获取标准化后的若干草图数据;
对各所述草图数据的约束类型和几何类型进行统计,并对统计后的各所述草图数据基于约束类型进行分类;
根据分类后的各所述草图数据对约束求解引擎进行性能测试,其中,所述性能测试包括若干基础测试和扰动测试,不同的约束类型分别对应不同的所述扰动测试。
在一种实施方式中,所获取标准化后的若干草图数据,包括:
获取若干原始草图数据分别对应的几何信息和约束信息;
对各所述原始草图数据的几何信息和约束信息进行序列化,分别得到各所述原始草图数据对应的标准化后的所述草图数据。
在一种实施方式中,所述获取标准化后的若干草图数据之后还包括:
对各所述草图数据进行数据去重和去除无效数据。
在一种实施方式中,所述对统计后的各所述草图数据基于约束类型进行分类,包括:
对统计后的各所述草图数据基于几何类型进行筛选;
对筛选出的各所述草图数据基于约束类型进行分类。
在一种实施方式中,若干所述基础测试包括接口测试、读取文件测试、回归测试、拖拽测试中至少一种测试。
在一种实施方式中,约束类型包括尺寸约束,尺寸约束对应的所述扰动测试包括:
针对包含尺寸约束的每一所述草图数据,改变所述草图数据的尺寸约束数值,测试所述约束求解引擎是否能基于改变后的所述草图数据求解成功。
在一种实施方式中,约束类型包括几何约束,几何约束对应的所述扰动测试包括:
针对包含几何约束的每一所述草图数据,改变所述草图数据的几何元素和/或几何关系,测试所述约束求解引擎是否能基于改变后的所述草图数据求解成功。
在一种实施方式中,所述性能测试还包括引擎对比测试,所述引擎对比测试包括:
获取若干所述约束求解引擎分别基于分类后的各所述草图数据生成的测试结果;
将各所述测试结果转换为统一的数据结构;
根据转换后的各所述测试结果进行对比,得到各所述约束求解引擎的对比结果。
在一种实施方式中,所述方法还包括:
若各所述草图数据均求解成功,则判断所述约束求解引擎通过测试。
在一种实施方式中,所述方法还包括:
若存在求解失败的所述草图数据,则根据所述草图数据对所述约束求解引擎进行修复;
修复完毕后,重新根据所述草图数据对所述约束求解引擎进行测试。
在一种实施方式中,所述约束求解引擎用于:
针对输入的每一所述草图数据,获取所述草图数据的约束并判断约束类型;
根据约束类型和自由度个数求解约束;
若求解成功,则去除已使用的自由度;若求解失败,则返回求解失败状态;
判断是否有未求解的约束,若有,则继续执行获取所述草图数据的约束并判断约束类型的步骤;若无,则返回求解成功状态。
第二方面,本发明实施例提供一种约束求解引擎的测试系统,所述系统包括:
数据获取模块,用于获取标准化后的若干草图数据;
统计分类模块,用于对各所述草图数据的约束类型和几何类型进行统计,并对统计后的各所述草图数据基于约束类型进行分类;
引擎测试模块,用于根据分类后的各所述草图数据对约束求解引擎进行性能测试,其中,所述性能测试包括若干基础测试和扰动测试,不同的约束类型分别对应不同的所述扰动测试。
第三方面,本发明实施例提供一种终端,所述终端包括有存储器和一个以上处理器;所述存储器存储有一个以上的程序;所述程序包含用于执行上述任一所述的约束求解引擎的测试方法的指令;所述处理器用于执行所述程序。
第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有多条指令,所述指令适用于由处理器加载并执行,以实现上述任一所述的约束求解引擎的测试方法的步骤。
本发明的有益效果:本发明实施例通过数据标准化,可以实现综合利用不同数据格式的草图数据。并通过多种基础测试和扰动测试对约束求解引擎进行更全面有效的测试,可以支撑高速版本迭代。解决了现有的单元测试方法测试数据单一,难以获得真实的测试结果的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的约束求解引擎的测试方法的流程示意图。
图2是本发明实施例提供的数据标准化的结果示意图。
图3是本发明实施例提供的数据获取和测试流程的步骤示意图。
图4是本发明实施例提供的meanshift算法的流程示意图。
图5是本发明实施例提供的基于约束类型的分类结果示意图。
图6是本发明实施例提供的尺寸约束示意图。
图7是本发明实施例提供的尺寸约束的扰动测试示意图。
图8是本发明实施例提供的几何约束示意图。
图9是本发明实施例提供的几何约束的扰动测试示意图。
图10是本发明实施例提供的引擎对比测试的示意图。
图11是本发明实施例提供的自由度示意图。
图12是本发明实施例提供的刚体自由度分析法的示意图。
图13是本发明实施例提供的约束求解引擎的运行流程示意图。
图14是本发明实施例提供的约束求解引擎的测试系统的模块示意图。
图15是本发明实施例提供的终端的原理框图。
具体实施方式
本发明公开了一种约束求解引擎的测试方法、系统、终端及存储介质,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
下面参考附图1-15描述本申请实施例的一种约束求解引擎的测试方法、系统、终端及存储介质。针对上述背景技术中提到的现有的单元测试方法测试数据单一,难以获得真实的测试结果的问题,本申请提供一种约束求解引擎的测试方法,所述方法通过获取标准化后的若干草图数据;对各所述草图数据的约束类型和几何类型进行统计,并对统计后的各所述草图数据基于约束类型进行分类;根据分类后的各所述草图数据对约束求解引擎进行性能测试,其中,所述性能测试包括若干基础测试和扰动测试,不同的约束类型分别对应不同的所述扰动测试。本发明通过数据标准化,可以实现综合利用不同数据格式的草图数据。并通过多种基础测试和扰动测试对约束求解引擎进行更全面有效的测试,可以支撑高速版本迭代。
具体而言,图1为本申请实施例所提供的一种约束求解引擎的测试方法的流程示意图。
如图1所示,该约束求解引擎的测试方法包括以下步骤:
步骤S100、获取标准化后的若干草图数据。
具体地,真实CAD世界中的草图数据存在多种数据格式,由于无法直接利用不同数据格式的草图数据,因此需要对这些草图数据进行标准化,以统一数据格式。
在一种实现方式中,所述获取标准化后的若干草图数据,包括:
获取若干原始草图数据分别对应的几何信息和约束信息;
对各所述原始草图数据的几何信息和约束信息进行序列化,分别得到各所述原始草图数据对应的标准化后的所述草图数据。
具体地,本实施例的数据标准化是基于原始草图数据的几何信息和约束信息实现的。针对每一原始草图数据,首先获取该原始草图数据的几何信息和约束信息。几何信息可以反映原始草图数据中包含的元素,例如点、线、面;约束信息可以反映各元素之间的关系,例如平行关系、对称关系。然后对几何信息和约束信息进行序列化,使原始草图数据转化为格式统一的标准化数据。
举例说明,如图2所示,可以采用python(编程语言)将大量的原始草图数据的几何信息和约束信息序列化为标准化json文件,并dump成可视化svg图片。
在一种实现方式中,所述获取标准化后的若干草图数据之后还包括:
对各所述草图数据进行数据去重和去除无效数据。
具体地,原始提取出的草图数据的数量大,且存在大量重复数据。为了提升数据质量和数据处理效率,如图3所示,本实施例还需要对草图数据进行数据清洗,即数据去重和去除无效数据。数据去重可以剔除掉多余的相似草图;去除无效数据可以剔除掉对约束求解而言无效的草图,从而提高测试数据的数据质量和测试效率。
举例说明,如图4所示,可以选择meanshilft聚类算法实现相似草图的去重和去除无效草图。
步骤S200、对各所述草图数据的约束类型和几何类型进行统计,并对统计后的各所述草图数据基于约束类型进行分类。
具体地,本实施例会对各草图数据的几何类型和约束类型进行统计,其中,几何类型可以反映草图数据中几何元素的类型,例如点、线段、多边形;约束类型可以反映草图数据中限制条件的类型,例如限制对象的方向、位置、尺寸。然后基于约束类型对各草图数据进行分类,以便于后续进行性能测试时可以针对不同约束类型的测试数据执行不同的测试方法,从而获得更好的测试效果。
举例说明,可以采用python对各草图数据按约束类型进行分类,得到如图5所示的约束类型分布图。
在一种实现方式中,所述对统计后的各所述草图数据基于约束类型进行分类,包括:
对统计后的各所述草图数据基于几何类型进行筛选;
对筛选出的各所述草图数据基于约束类型进行分类。
具体地,为了进一步提高测试数据的质量,本实施例对各草图数据的几何类型和约束类型进行统计以后,会根据几何类型对各草图数据先进行筛选,以获得几何类型丰富的草图数据,然后再对筛选出的各草图数据按照约束类型进行分类。
步骤S300、根据分类后的各所述草图数据对约束求解引擎进行性能测试,其中,所述性能测试包括若干基础测试和扰动测试,不同的约束类型分别对应不同的所述扰动测试。
具体地,约束求解引擎是CAD参数化设计的关键核心,为了保障约束求解引擎的可靠性,本实施例会将分类后的各草图数据逐个载入约束求解引擎进行多种基础测试和扰动测试。现有的约束求解引擎通常只进行基础测试,未检测约束求解引擎的抗干扰能力。而本实施例中除了进行多种基础测试以外,针对不同约束类型的草图数据还会采用不同的扰动测试来检测约束求解引擎的抗干扰能力,从而获得更加全面有效的测试结果。
在一种实现方式中,若干所述基础测试包括接口测试、读取文件测试、回归测试、拖拽测试中至少一种测试。
具体地,接口测试(APITest)可以检测约束求解引擎与外部之间以及约束求解引擎内部各子系统之间的交互功能;读取文件测试(JsonTest)可以检测约束求解引擎的读取功能;回归测试(RegressionTest)可以实现当前版本与前一版本之间的测试结果比对;拖拽测试(DragTest)可以检测约束求解引擎的稳定性。本实施例通过对约束求解引擎进行多种基础测试,可以进一步提高测试结果的全面性和有效性。
举例说明,接口测试的方法包括:自定义Case对预先确定的接口进行测试。读取文件测试的方法包括:读取各草图数据组中的json文件进行测试;回归测试的方法包括:根据基于约束类型分类后的各草图数据对当前版本程序与上一版本程序分别进行测试,对两个版本程序的测试结果进行对比。拖拽测试的方法包括:对选定的元素基于预设路径进行拖拽测试。
在一种实现方式中,约束类型包括尺寸约束,尺寸约束对应的所述扰动测试包括:
针对包含尺寸约束的每一所述草图数据,改变所述草图数据的尺寸约束数值,测试所述约束求解引擎是否能基于改变后的所述草图数据求解成功。
具体地,尺寸约束指的是对元素的尺寸的限定条件,图6为圆加上半径的尺寸约束,其中,表示锁定,/>表示半径。针对尺寸约束的草图数据进行扰动测试时,主要是对草图数据中尺寸约束数值进行干扰,使得原本具有正确解的草图数据的尺寸发生变化。如图7所示,可以通过改变直径的数值来实现尺寸约束的扰动测试。
在一种实现方式中,约束类型包括几何约束,几何约束对应的所述扰动测试包括:
针对包含几何约束的每一所述草图数据,改变所述草图数据的几何元素和/或几何关系,测试所述约束求解引擎是否能基于改变后的所述草图数据求解成功。
具体地,几何约束指的是对几何元素和/或几何关系的限制条件,图8为直线和圆弧相切的几何约束。针对几何约束的草图数据进行扰动测试时,主要是对草图数据中约束的几何进行干扰,使得原本具有正确解的草图数据的几何元素/几何关系发生变化。如图9所示,可以通过改变线条的相对位置关系来实现几何约束的扰动测试。
在一种实现方式中,所述性能测试还包括引擎对比测试,所述引擎对比测试包括:
获取若干所述约束求解引擎分别基于分类后的各所述草图数据生成的测试结果;
将各所述测试结果转换为统一的数据结构;
根据转换后的各所述测试结果进行对比,得到各所述约束求解引擎的对比结果。
具体地,由于不同约束求解引擎输出的数据结构不同,因此难以直接对各约束求解引擎的测试结果进行比较。为了实现引擎对比测试(CompareTest),本实施例通过将不同约束求解引擎的测试结果转换为统一的数据结构,从而实现不同约束求解引擎之间的结果比对。
举例说明,如图10所示,由分类后的各草图数据组成测试数据集,通过测试数据集分别对约束求解引擎A、B进行测试,例如单元案例测试、拖拽测试。通过数据转换的共性组件将所有约束求解引擎的测试结果转换为统一的数据结构,以便于实现各约束求解引擎之间的结果对比。
在一种实现方式中,所述方法还包括:
若各所述草图数据均求解成功,则判断所述约束求解引擎通过测试。
具体地,如图3所示,如果每个草图数据输入约束求解引擎后均能够求解成功,表示约束求解引擎在不同测试数据上的有效性和正确性均能够得到验证,则判断约束求解引擎验证通过,可以发布测试通过报告。
在一种实现方式中,所述方法还包括:
若存在求解失败的所述草图数据,则根据所述草图数据对所述约束求解引擎进行修复;
修复完毕后,重新根据所述草图数据对所述约束求解引擎进行测试。
具体地,如图3所示,若存在未求解成功的草图数据,则判断约束求解引擎存在缺陷,未验证通过。为了解决缺陷,需要将求解失败的草图数据传输给相关的研发人员对约束求解引擎进行修复,修复完毕后再基于该草图数据重新对约束求解引擎进行测试。
在一种实现方式中,所述约束求解引擎用于:
针对输入的每一所述草图数据,获取所述草图数据的约束并判断约束类型;
根据约束类型和自由度个数求解约束;
若求解成功,则去除已使用的自由度;若求解失败,则返回求解失败状态;
判断是否有未求解的约束,若有,则继续执行获取所述草图数据的约束并判断约束类型的步骤;若无,则返回求解成功状态。
本实施例中的约束求解引擎基于刚体自由度分析法构建。如图11所示,在三维空间中,一个刚体通常有六个自由度,六个自由度分为平移自由度和旋转自由度。平移自由度包括:x、y、z轴方向上的平移自由度,分别用变量“x”、“y”、“z”表示。旋转自由度包括:绕x、y、z轴旋转的自由度,分别用角度“θ”、“φ”、“ψ”表示。各种自由度可以描述刚体在空间中的运动方式。例如,改变x、y和z的值,可以使刚体在三个方向上平移;改变θ、φ和ψ的值,可以使刚体绕三个坐标轴旋转。约束求解引擎的作用是针对输入的每一草图数据,通过分析草图数据中所有约束对不同元素的自由度状态的影响,输出草图数据的图形解。具体地,当草图数据中存在多个约束时,对各约束依次进行求解,并在每一约束求解成功以后及时消除已使用的自由度,下一约束则在剩余的自由度的基础上进行求解,直至所有约束均被求解成功,即得到该草图数据的图形解。
举例说明,如图12所示,图12中符号表示平行,符号/>表示固定,以线线平行为例说明刚体自由度分析法:L2和L1平行,L1固定,两者均在2维xy平面上;由于L1固定,因此L1自由度为0,无法在任何方向上平移或旋转;L2在2维xy平面上的这一约束条件,限制了L2在Z方向上平移和绕x轴、y轴旋转的自由度;L2和L1平行的这一约束条件限制了L2的方向,即L2绕z轴旋转的自由度,因此L2最后剩余x,y方向的平移自由度。依次类推,在约束系统存在多个几何体的时候,求解出每个几何体都满足约束时它们的位置和关系。
举例说明,如图13所示,约束求解引擎的运行流程包括:
预先对待测试的草图数据进行参数化;
获取参数,判断参数是否合法;
若参数合法,则设定系统状态并存储参数;若参数不合法,则返回求解失败状态;
判断是否有剩余约束;
若有剩余约束,则取出约束,并判断约束类型;若无剩余约束,则判断所有约束被求解,返回求解成功状态;
根据约束类型和自由度个数求解约束;
若求解成功,则去除已使用的自由度,并更新系统状态,继续执行判断是否有剩余约束的步骤;若求解失败则返回求解失败状态。
具体地,在实际应用场景中,约束求解引擎还需要对输入的草图数据的参数进行合法性判断,只有当参数被判断为合法以后才会根据草图数据的参数进行约束和自由度的求解。
本发明的优点在于:
1.本发明通过对现有CAD世界中海量的草图数据进行标准化处理和数据清洗,保证了数据的完备性和真实性。
2.本发明通过约束类型对草图数据进行分类,测试时除了对约束求解引擎进行拖拽测试等多种基础测试之外,还会根据不同的约束类型进行不同的扰动测试,以检测约束求解引擎的抗干扰能力,从而更全面地验证约束引擎算法的有效性和正确性,较好的支撑了版本的快速迭代。
3.本发明通过数据转换可以实现不同约束求解引擎的对比测试。
基于上述实施例,本发明还提供了一种约束求解引擎的测试系统,如图14所示,所述系统包括:
数据获取模块01,用于获取标准化后的若干草图数据;
统计分类模块02,用于对各所述草图数据的约束类型和几何类型进行统计,并对统计后的各所述草图数据基于约束类型进行分类;
引擎测试模块03,用于根据分类后的各所述草图数据对约束求解引擎进行性能测试,其中,所述性能测试包括若干基础测试和扰动测试,不同的约束类型分别对应不同的所述扰动测试。
基于上述实施例,本发明还提供了一种终端,其原理框图可以如图15所示。该终端包括通过系统总线连接的处理器、存储器、网络接口、显示屏。其中,该终端的处理器用于提供计算和控制能力。该终端的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该终端的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现约束求解引擎的测试方法。该终端的显示屏可以是液晶显示屏或者电子墨水显示屏。
本领域技术人员可以理解,图15中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一种实现方式中,所述终端的存储器中存储有一个以上的程序,且经配置以由一个以上处理器执行所述一个以上程序包含用于进行约束求解引擎的测试方法的指令。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
综上所述,本发明公开了一种约束求解引擎的测试方法、系统、终端及存储介质,所述方法包括:获取标准化后的若干草图数据;对各所述草图数据的约束类型和几何类型进行统计,并对统计后的各所述草图数据基于约束类型进行分类;根据分类后的各所述草图数据对约束求解引擎进行性能测试,其中,所述性能测试包括若干基础测试和扰动测试,不同的约束类型分别对应不同的所述扰动测试。本发明通过数据标准化,可以实现综合利用不同数据格式的草图数据。并通过多种基础测试和扰动测试对约束求解引擎进行更全面有效的测试,可以支撑高速版本迭代。解决了现有的单元测试方法测试数据单一,难以获得真实的测试结果的问题。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (14)

1.一种约束求解引擎的测试方法,其特征在于,所述方法包括:
获取标准化后的若干草图数据;
对各所述草图数据的约束类型和几何类型进行统计,并对统计后的各所述草图数据基于约束类型进行分类;
根据分类后的各所述草图数据对约束求解引擎进行性能测试,其中,所述性能测试包括若干基础测试和扰动测试,不同的约束类型分别对应不同的所述扰动测试。
2.根据权利要求1所述的约束求解引擎的测试方法,其特征在于,所获取标准化后的若干草图数据,包括:
获取若干原始草图数据分别对应的几何信息和约束信息;
对各所述原始草图数据的几何信息和约束信息进行序列化,分别得到各所述原始草图数据对应的标准化后的所述草图数据。
3.根据权利要求1所述的约束求解引擎的测试方法,其特征在于,所述获取标准化后的若干草图数据之后还包括:
对各所述草图数据进行数据去重和去除无效数据。
4.根据权利要求1所述的约束求解引擎的测试方法,其特征在于,所述对统计后的各所述草图数据基于约束类型进行分类,包括:
对统计后的各所述草图数据基于几何类型进行筛选;
对筛选出的各所述草图数据基于约束类型进行分类。
5.根据权利要求1所述的约束求解引擎的测试方法,其特征在于,若干所述基础测试包括接口测试、读取文件测试、回归测试、拖拽测试中至少一种测试。
6.根据权利要求1所述的约束求解引擎的测试方法,其特征在于,约束类型包括尺寸约束,尺寸约束对应的所述扰动测试包括:
针对包含尺寸约束的每一所述草图数据,改变所述草图数据的尺寸约束数值,测试所述约束求解引擎是否能基于改变后的所述草图数据求解成功。
7.根据权利要求1所述的约束求解引擎的测试方法,其特征在于,约束类型包括几何约束,几何约束对应的所述扰动测试包括:
针对包含几何约束的每一所述草图数据,改变所述草图数据的几何元素和/或几何关系,测试所述约束求解引擎是否能基于改变后的所述草图数据求解成功。
8.根据权利要求1所述的约束求解引擎的测试方法,其特征在于,所述性能测试还包括引擎对比测试,所述引擎对比测试包括:
获取若干所述约束求解引擎分别基于分类后的各所述草图数据生成的测试结果;
将各所述测试结果转换为统一的数据结构;
根据转换后的各所述测试结果进行对比,得到各所述约束求解引擎的对比结果。
9.根据权利要求1所述的约束求解引擎的测试方法,其特征在于,所述方法还包括:
若各所述草图数据均求解成功,则判断所述约束求解引擎通过测试。
10.根据权利要求1或9所述的约束求解引擎的测试方法,其特征在于,所述方法还包括:
若存在求解失败的所述草图数据,则根据所述草图数据对所述约束求解引擎进行修复;
修复完毕后,重新根据所述草图数据对所述约束求解引擎进行测试。
11.根据权利要求1所述的约束求解引擎的测试方法,其特征在于,所述约束求解引擎用于:
针对输入的每一所述草图数据,获取所述草图数据的约束并判断约束类型;
根据约束类型和自由度个数求解约束;
若求解成功,则去除已使用的自由度;若求解失败,则返回求解失败状态;
判断是否有未求解的约束,若有,则继续执行获取所述草图数据的约束并判断约束类型的步骤;若无,则返回求解成功状态。
12.一种约束求解引擎的测试系统,其特征在于,所述系统包括:
数据获取模块,用于获取标准化后的若干草图数据;
统计分类模块,用于对各所述草图数据的约束类型和几何类型进行统计,并对统计后的各所述草图数据基于约束类型进行分类;
引擎测试模块,用于根据分类后的各所述草图数据对约束求解引擎进行性能测试,其中,所述性能测试包括若干基础测试和扰动测试,不同的约束类型分别对应不同的所述扰动测试。
13.一种终端,其特征在于,所述终端包括有存储器和一个以上处理器;所述存储器存储有一个以上的程序;所述程序包含用于执行如权利要求1-11中任一所述的约束求解引擎的测试方法的指令;所述处理器用于执行所述程序。
14.一种计算机可读存储介质,其上存储有多条指令,其特征在于,所述指令适用于由处理器加载并执行,以实现上述权利要求1-11任一所述的约束求解引擎的测试方法的步骤。
CN202410179774.9A 2024-02-18 2024-02-18 一种约束求解引擎的测试方法、系统、终端及存储介质 Active CN117744408B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410179774.9A CN117744408B (zh) 2024-02-18 2024-02-18 一种约束求解引擎的测试方法、系统、终端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410179774.9A CN117744408B (zh) 2024-02-18 2024-02-18 一种约束求解引擎的测试方法、系统、终端及存储介质

Publications (2)

Publication Number Publication Date
CN117744408A true CN117744408A (zh) 2024-03-22
CN117744408B CN117744408B (zh) 2024-06-11

Family

ID=90254913

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410179774.9A Active CN117744408B (zh) 2024-02-18 2024-02-18 一种约束求解引擎的测试方法、系统、终端及存储介质

Country Status (1)

Country Link
CN (1) CN117744408B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452238A (en) * 1989-06-13 1995-09-19 Schlumberger Technology Corporation Method for solving geometric constraint systems
US20100238167A1 (en) * 2008-04-14 2010-09-23 Ricky Lynn Black System and method for converting dimensions
CN104809690A (zh) * 2015-04-10 2015-07-29 西北工业大学 一种多草图的智能融合方法
US20220303720A1 (en) * 2021-03-20 2022-09-22 xAd, Inc. System and Method of Forecasting Based on Periodical Sketching of Big Data of Observations
CN115997213A (zh) * 2020-08-25 2023-04-21 西门子工业软件有限公司 计算机辅助设计(cad)组件的约束的基于机器学习的生成
CN116166229A (zh) * 2023-02-07 2023-05-26 深圳市万翼数字技术有限公司 设计领域的设计约束方法、装置、设备及存储介质
FR3131030A1 (fr) * 2021-12-17 2023-06-23 Topsolid Procédé de résolution de contraintes géométriques d’une esquisse

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5452238A (en) * 1989-06-13 1995-09-19 Schlumberger Technology Corporation Method for solving geometric constraint systems
US20100238167A1 (en) * 2008-04-14 2010-09-23 Ricky Lynn Black System and method for converting dimensions
CN104809690A (zh) * 2015-04-10 2015-07-29 西北工业大学 一种多草图的智能融合方法
CN115997213A (zh) * 2020-08-25 2023-04-21 西门子工业软件有限公司 计算机辅助设计(cad)组件的约束的基于机器学习的生成
US20220303720A1 (en) * 2021-03-20 2022-09-22 xAd, Inc. System and Method of Forecasting Based on Periodical Sketching of Big Data of Observations
FR3131030A1 (fr) * 2021-12-17 2023-06-23 Topsolid Procédé de résolution de contraintes géométriques d’une esquisse
CN116166229A (zh) * 2023-02-07 2023-05-26 深圳市万翼数字技术有限公司 设计领域的设计约束方法、装置、设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
何伟 等: "一种基于图分解的几何约束求解方法", 中国图象图形学报, vol. 8, no. 8, 31 August 2003 (2003-08-31), pages 926 - 931 *
刘宪国 等: "对象族特征模型几何约束求解研究", 计算机科学, vol. 39, no. 4, 30 April 2012 (2012-04-30), pages 269 - 274 *

Also Published As

Publication number Publication date
CN117744408B (zh) 2024-06-11

Similar Documents

Publication Publication Date Title
CN112017104B (zh) 用于执行基于图块的渲染的方法和图形处理系统
CN115239719A (zh) 缺陷检测方法、系统、电子设备及存储介质
CN111814740B (zh) 指针仪表读数的识别方法、装置、计算机设备和存储介质
CN117744408B (zh) 一种约束求解引擎的测试方法、系统、终端及存储介质
Finelli Characterization of fault recovery through fault injection on FTMP
CN111680463A (zh) 一种文件检查方法和装置
CN112632330A (zh) Atm设备的巡检方法、装置、计算机设备和存储介质
CN112612716B (zh) 差异行代码覆盖率增强标记方法、系统、设备及存储介质
CN117391306A (zh) 国土空间规划成果审查方法、装置、设备以及存储介质
CN112420117A (zh) 测试sram的方法、装置、计算机设备及存储介质
CN112395129A (zh) 存储校验方法、装置、计算芯片、计算机设备及存储介质
CN1536486A (zh) 可自测试的带微处理器的智能卡芯片
Shriram et al. Empirical study on the distribution of bugs in software systems
CN115018842A (zh) 基于机器视觉的缺陷检测方法、装置、终端及存储介质
WO2022182922A1 (en) Structural analysis for determining fault types in safety related logic
CN111475928A (zh) 基于三维模型的卫星结构设计检查方法及系统
JP2803369B2 (ja) 対話型システムの検査方法
CN117435415A (zh) 一种提升复杂芯片系统验证效率的验证方法
JPH0997194A (ja) フェイルメモリのデータ取得装置
Babayan Validation and Test Challenges for Multi-Memory Bus BIST Engines
CN118052176A (zh) 一种面向浮点融合运算单元的激励抽样预验证方法和装置
CN117609067A (zh) 反向测试用例的生成方法、装置及设备
Zhang et al. Security and Fault Diagnosis-Based Assertion-Based Verification for FPGA
CN116362178A (zh) 面向fpga的片上sdram接口验证系统
CN112416773A (zh) 一种跨平台的数据可视化方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant