CN116069676A - 版本对比方法、装置、终端设备及存储介质 - Google Patents
版本对比方法、装置、终端设备及存储介质 Download PDFInfo
- Publication number
- CN116069676A CN116069676A CN202310364528.6A CN202310364528A CN116069676A CN 116069676 A CN116069676 A CN 116069676A CN 202310364528 A CN202310364528 A CN 202310364528A CN 116069676 A CN116069676 A CN 116069676A
- Authority
- CN
- China
- Prior art keywords
- parameter
- parameter name
- version
- file
- list
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/368—Test management for test version control, e.g. updating test cases to a new software version
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1873—Versioning file systems, temporal file systems, e.g. file system supporting different historic versions of files
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请公开了一种版本对比方法、装置、终端设备及存储介质,通过获取第一版本参数文件和第二版本参数文件,其中,第一版本参数文件至少包括第一参数名列表,第二版本参数文件至少包括第二参数名列表;比较第一参数名列表和第二参数名列表;若第一参数名列表中的第一参数名和第二参数名列表中的第二参数名不同,则根据第一参数名和第二参数名,确定待更新参数名;其中,待更新参数名与第一参数名相对应;根据待更新参数名,以及版本参数文件和参数名的对应关系,对第一版本参数文件进行更新,通过本发明实施例中建立的参数名和版本参数文件的对应关系,对参数名进行判断,使用参数名对版本参数文件进行更新,实现多版本解算器的参数自适应。
Description
技术领域
本申请属于计算机技术领域,尤其涉及一种版本对比方法、装置、终端设备及存储介质。
背景技术
CFD软件研发过程中,采用自动化测试平台(Automatic testing platform)可以大幅提高软件开发效率、保障软件质量。自动化测试平台的测试原理是:对开发者提交的每个版本代码(版本中包括对应的参数文件),编译代码得到解算器,调用该解算器分别运行算例数据库中存储的标准算例,将计算结果与数据库中的标准结果对比,以得到当前版本解算器计算结果与标准结果的误差。算例数据库中的每个算例同时包括了控制该算例的参数文件、标准结果文件,其中标准结果文件用于对比其他版本解算器计算结果的正确性。
当开发者在某一个版本中修改了参数文件中某个参数的参数名后,自动化测试平台可能将不能正确运行,原因是:对该参数的参数名,在新版本和此前的算例数据库不一致,导致解算器在运行算例时,因无法找到该参数,而非正常退出。
对于该问题,此前软件研发人员只能手动人工解决:首先人工找出参数名有变化的参数,再手动将算例数据库中每个算例对应的该参数的参数名更新,然后才能正常测试。这种人工修改方式,使得工作效率大幅下降。
发明内容
本申请意在提供一种版本对比方法、装置、终端设备及存储介质,以解决现有技术中存在的不足,本申请要解决的技术问题通过以下技术方案来实现。
第一个方面,本申请实施例提供一种版本对比方法,所述方法包括:
获取第一版本参数文件和第二版本参数文件,其中,所述第一版本参数文件至少包括第一参数名列表,所述第二版本参数文件至少包括第二参数名列表;
比较所述第一参数名列表和所述第二参数名列表;
若所述第一参数名列表中的第一参数名和所述第二参数名列表中的第二参数名不同,则根据所述第一参数名和所述第二参数名,确定待更新参数名;其中,所述待更新参数名与所述第一参数名相对应;
根据所述待更新参数名,以及版本参数文件和参数名的对应关系,对所述第一版本参数文件进行更新。
可选地,在获取所述第二版本参数文件之前,所述方法还包括:
获取与所述第一版本参数文件对应的参数名变更关系文件,其中,所述参数名变更关系文件至少包括参数名,与所述参数名对应的参数类型和与所述参数名对应的参数值。
可选地,所述方法包括:
若所述第一参数名列表中的第一参数名和所述第二参数名列表中的第二参数名相同,则将所述第一参数名和所述第二参数名设置为第一预设值;
根据所述第一预设值出现的次数,确定元素区间,所述元素区间至少包括区间起点元素和区间终点元素;
若所述第一参数名列表中的第一预设值的个数和所述第二参数名列表中的第一预设值的个数相同,且所述第一参数名列表中的元素区间和所述第二参数名列表的元素区间相同,则与所述第一预设值对应的第一参数名和与所述第一预设值对应的第二参数名相对应。
可选地,所述方法包括:
若所述第一参数名列表中的第一预设值的个数和所述第二参数名列表中的第一预设值的个数不同,和/或所述第一参数名列表中的元素区间和所述第二参数名列表的元素区间不同,则获取所述第一参数名列表中第三参数名和所述第二参数名列表中的第四参数名;且所述第三参数名和所述第四参数名被设置为第二预设值;
若所述第四参数名与所述第三参数名相匹配,则采用所述第四参数名对所述第三参数名进行更新。
可选地,所述方法还包括:
若所述第四参数名与所述第三参数名不匹配,则获取所述第二参数名列表中的第五参数名;
采用所述第五参数名与所述第三参数名进行匹配,若所述第五参数名与所述第三参数名匹配,则采用所述第五参数名对所述第三参数名进行更新。
可选地,所述方法还包括:
若当前版本的序号小于第一版本的序号,则采用与所述第一版本的序号对应的第一版本参数文件执行与所述第一版本参数文件对应的算例;
若当前版本的序号大于等于所述第一版本的序号,则采用第二版本参数文件,执行与所述第二版本参数文件对应的算例。
第二个方面,本申请实施例提供一种版本对比装置,所述装置包括:
获取模块,用于获取第一版本参数文件和第二版本参数文件,其中,所述第一版本参数文件至少包括第一参数名列表,所述第二版本参数文件至少包括第二参数名列表;
比较模块,用于比较所述第一参数名列表和所述第二参数名列表;
确定模块,用于若所述第一参数名列表中的第一参数名和所述第二参数名列表中的第二参数名不同,则根据所述第一参数名和所述第二参数名,确定待更新参数名;其中,所述待更新参数名与所述第一参数名相对应;
更新模块,用于根据所述待更新参数名,以及版本参数文件和参数名的对应关系,对所述第一版本参数文件进行更新。
可选地,所述获取模块还用于:
获取与所述第一版本参数文件对应的参数名变更关系文件,其中,所述参数名变更关系文件至少包括参数名,与所述参数名对应的参数类型和与所述参数名对应的参数值。
可选地,所述更新模块用于:
若所述第一参数名列表中的第一参数名和所述第二参数名列表中的第二参数名相同,则将所述第一参数名和所述第二参数名设置为第一预设值;
根据所述第一预设值出现的次数,确定元素区间,所述元素区间至少包括区间起点元素和区间终点元素;
若所述第一参数名列表中的第一预设值的个数和所述第二参数名列表中的第一预设值的个数相同,且所述第一参数名列表中的元素区间和所述第二参数名列表的元素区间相同,则与所述第一预设值对应的第一参数名和与所述第一预设值对应的第二参数名相对应。
可选地,所述更新模块用于:
若所述第一参数名列表中的第一预设值的个数和所述第二参数名列表中的第一预设值的个数不同,和/或所述第一参数名列表中的元素区间和所述第二参数名列表的元素区间不同,则获取所述第一参数名列表中第三参数名和所述第二参数名列表中的第四参数名;且所述第三参数名和所述第四参数名被设置为第二预设值;
若所述第四参数名与所述第三参数名相匹配,则采用所述第四参数名对所述第三参数名进行更新。
可选地,所述更新模块用于:
若所述第四参数名与所述第三参数名不匹配,则获取所述第二参数名列表中的第五参数名;
采用所述第五参数名与所述第三参数名进行匹配,若所述第五参数名与所述第三参数名匹配,则采用所述第五参数名对所述第三参数名进行更新。
可选地,所述更新模块用于:
若当前版本的序号小于第一版本的序号,则采用与所述第一版本的序号对应的第一版本参数文件执行与所述第一版本参数文件对应的算例;
若当前版本的序号大于等于所述第一版本的序号,则采用第二版本参数文件,执行与所述第二版本参数文件对应的算例。
第三个方面,本申请实施例提供一种终端设备,包括:至少一个处理器和存储器;
所述存储器存储计算机程序;所述至少一个处理器执行所述存储器存储的计算机程序,以实现第一个方面提供的版本对比方法。
第四个方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现第一个方面提供的版本对比方法。
本申请实施例包括以下优点:
本申请实施例提供的版本对比方法、装置、终端设备及存储介质,通过获取第一版本参数文件和第二版本参数文件,其中,第一版本参数文件至少包括第一参数名列表,第二版本参数文件至少包括第二参数名列表;比较第一参数名列表和第二参数名列表;若第一参数名列表中的第一参数名和第二参数名列表中的第二参数名不同,则根据第一参数名和第二参数名,确定待更新参数名;其中,待更新参数名与第一参数名相对应;根据待更新参数名,以及版本参数文件和参数名的对应关系,对第一版本参数文件进行更新,通过本发明实施例中建立的参数名和版本参数文件的对应关系,对参数名进行判断,使用参数名对版本参数文件进行更新,实现多版本解算器的参数自适应。
附图说明
为了更清楚地说明本申请实施例或现有的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例中一种版本对比方法的流程图;
图2为本申请一实施例中又一种版本对比方法的流程图;
图3是本申请的一种版本对比装置实施例的结构框图;
图4是本申请的一种终端设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本申请的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
名词解释:
计算流体力学:Computational Fluid Dynamics,简称为CFD,作为一门利用数值方法和计算机技术求解流体力学方程获得流动规律和解决问题的学科,涉及到计算几何、流体动力学、偏微分方程的数学理论、数值分析等各个方面,揭示流动的规律和现象,其研究的目的可以大幅度降低设计成本、缩短研制周期的同时,还能提供更丰富的流场信息。
流场:某一时刻气流运动的空间分布。
解算器:基于数值计算方法,编写的求解流动控制方程的程序。
参数:从硬盘文件中读入的计算参数,用于控制解算器运行时的计算方法。每个参数包括几个要素,分别是参数名、参数类型、参数值。
算例:对实际的物理场景采用数值模拟进行抽象,由参数文件、网格文件、结果文件三部分组成。
标准算例:CFD软件或平台携带的算例,用户可下载使用。算例的结果文件作为基准供用户参考。
算例数据库:存储了若干个(几十到几百个)算例的数据库。算例数据库的每个算例包括了参数文件、网格文件、标准结果文件。
数值模拟:依靠电子计算机,结合有限元或有限容积的概念,通过数值计算和图像显示的方法,达到对工程问题和物理问题乃至自然界各类问题研究的目的。
云平台:云平台也称为云计算平台,基于硬件资源和软件资源的服务,提供计算、网络和存储能力。
自动化测试平台:Automatic testing platform,简称ATP,CFD软件自动化测试平台。该平台基于数据库,通过前台界面和远程集群后台管理程序的网络信息交互,实现了自主研发的通用CFD软件平台(HyperFLOW)的自动测试及验证与确认。
Diff方法:Diff方法是一种对比方法的统称,Diff是将源对象变为目标对象所需要的操作,方法原理取决于具体的框架或软件。
网格:将计算区域表示为离散形式,有结构网格、非结构网格、笛卡尔网格等多种网格类型。
列表:一种有序和可更改的集合,通过都好分隔不同的数据项,允许重复的数据项。例如:list = ['physics', 'chemistry', 1997, 2000]
风雷软件:面向流体工程的混合CFD平台。
Json(JavaScript Object Notation):是一种轻量级的数据交换格式,建立在键值对的基础上,作为通用的前后端交互,或者后台服务间通信的通用格式。
CFD软件研发过程中,采用自动化测试平台(Automatic testing platform)可以大幅提高软件开发效率、保障软件质量。自动化测试平台的测试原理是:对开发者提交的每个版本代码(版本中包括对应的参数文件),编译代码得到解算器,调用该解算器分别运行算例数据库中存储的标准算例,将计算结果与数据库中的标准结果对比,以得到当前版本解算器计算结果与标准结果的误差。算例数据库中的每个算例同时包括了控制该算例的参数文件、标准结果文件,其中标准结果文件用于对比其他版本解算器计算结果的正确性。
本申请一实施例提供一种版本对比方法,用于对不同的版本参数文件进行比较。本实施例的执行主体为版本对比装置,设置在终端设备上,例如,终端设备至少包括计算机终端等。
参照图1,示出了本申请的一种版本对比方法实施例的步骤流程图,该方法具体可以包括如下步骤:
S101、获取第一版本参数文件和第二版本参数文件,其中,第一版本参数文件至少包括第一参数名列表,第二版本参数文件至少包括第二参数名列表;
具体地,在终端设备上安装有CFD软件,该CFD软件通过运行解算器开展数值计算,以分析流场、预测流动特性。参数是从版本参数文件中读入,用于选择计算方法、控制解算器运行。参数文件中一般有多个参数,每个参数包括参数名、参数类型、参数值。每个解算器都和一套参数匹配,即使对于同一个解算器,当计算方法有改变时,参数可能增加、减少,或者其中的一些参数名也可能改变。解算器研发过程中,可能存在多个程序版本,每个版本对应不同的参数。
终端设备获取第一版本参数文件,该第一版本参数文件为初始获取的版本参数文件,第一版本参数文件至少包括第一参数名列表、与每一个第一参数名对应的参数类型和与每一个第一参数名对应的参数值,在后续过程中,终端设备获取第二版本参数文件,第二版本参数文件至少包括第二参数名列表、与每一个第二参数名对应的参数类型和与每一个第二参数名对应的参数值。
S102、比较第一参数名列表和第二参数名列表;
其中,第一参数名列表中包括多个第一参数名,第二参数名列表中包括多个第二参数名。
终端设备对第一参数名列表中的多个第一参数名和第二参数名列表中的多个第二参数名分别进行比较。
S103、若第一参数名列表中的第一参数名和第二参数名列表中的第二参数名不同,则根据第一参数名和第二参数名,确定待更新参数名;其中,待更新参数名与第一参数名相对应;
S104、根据待更新参数名,以及版本参数文件和参数名的对应关系,对第一版本参数文件进行更新。
本申请实施例提供的版本对比方法,通过获取第一版本参数文件和第二版本参数文件,其中,第一版本参数文件至少包括第一参数名列表,第二版本参数文件至少包括第二参数名列表;比较第一参数名列表和第二参数名列表;若第一参数名列表中的第一参数名和第二参数名列表中的第二参数名不同,则根据第一参数名和第二参数名,确定待更新参数名;其中,待更新参数名与第一参数名相对应;根据待更新参数名,以及版本参数文件和参数名的对应关系,对第一版本参数文件进行更新,通过本发明实施例中建立的参数名和版本参数文件的对应关系,对参数名进行判断,使用参数名对版本参数文件进行更新,实现多版本解算器的参数自适应。
本申请又一实施例对上述实施例提供的版本对比方法做进一步补充说明。
可选地,在获取第二版本参数文件之前,该方法还包括:
获取与第一版本参数文件对应的参数名变更关系文件,其中,参数名变更关系文件至少包括参数名,与参数名对应的参数类型和与参数名对应的参数值。
其中,参数名变更关系文件与第一版本参数文件相对应。
可选地,该方法包括:
若第一参数名列表中的第一参数名和第二参数名列表中的第二参数名相同,则将第一参数名和第二参数名设置为第一预设值;
根据第一预设值出现的次数,确定元素区间,元素区间至少包括区间起点元素和区间终点元素;
若第一参数名列表中的第一预设值的个数和第二参数名列表中的第一预设值的个数相同,且第一参数名列表中的元素区间和第二参数名列表的元素区间相同,则与第一预设值对应的第一参数名和与第一预设值对应的第二参数名相对应。
可选地,该方法包括:
若第一参数名列表中的第一预设值的个数和第二参数名列表中的第一预设值的个数不同,和/或第一参数名列表中的元素区间和第二参数名列表的元素区间不同,则获取第一参数名列表中第三参数名和第二参数名列表中的第四参数名;且第三参数名和第四参数名被设置为第二预设值;
若第四参数名与第三参数名相匹配,则采用第四参数名对第三参数名进行更新。
可选地,该方法还包括:
若第四参数名与第三参数名不匹配,则获取第二参数名列表中的第五参数名;
采用第五参数名与第三参数名进行匹配,若第五参数名与第三参数名匹配,则采用第五参数名对第三参数名进行更新。
可选地,该方法还包括:
若当前版本的序号小于第一版本的序号,则采用与第一版本的序号对应的第一版本参数文件执行与第一版本参数文件对应的算例;
若当前版本的序号大于等于第一版本的序号,则采用第二版本参数文件,执行与第二版本参数文件对应的算例。
具体地,以参数名iviscous为例。iviscous在3008版本出现,到7047版本参数名变更为viscousType。若当前版本小于7047,则算例参数文件中的参数名iviscous保存不变,若版本大于等于7047,算例参数文件中的参数名iviscous修改为viscousType。
图2为本申请一实施例中又一种版本对比方法的流程图,如图2所示,图2中的数字“1”-“5”分别表示5个步骤,例如下面所示的“步骤一”对应图2中的“1”,“步骤二”对应图2中的“2”,“步骤三”对应图2中的“3”,“步骤四”对应图2中的“4”,“步骤五”对应图2中的“5”。当使用新版本解算器求解算例时,因为该版本对应的参数可能变更,将导致解算器无法运行算例数据库中的原有算例。对于此,如果分析日志得出参数的变更情况,再进行人工修正。这种高度依赖经验的方式对研究人员提出较高的要求,并且人工校验降低了整个研发的效率。本发明实施例提出一种版本对比方法,能够有效地解决上述问题,提高研发人员工作效率。
本发明实施例提出的适应于云平台的CFD跨版本参数对比方法,包括以下步骤:
步骤一:参数变更关系文件初始化。参数变更关系文件是以Json格式存储参数名变更关系的文件。自动化测试平台中第一个通过测试的版本代码,其版本作为初始版本。解析初始版本代码的参数文件即第一版本参数文件,第一行为例(doublecflMGTimes =1.0;),解析得到参数类型为double, 参数名为cflMGTimes, 参数值为1.0。将解析得到的参数名(cflMGTimes)存入参数变更关系文件。对该初始版本代码的参数文件的每一行,都执行该操作,从而完成对参数变更关系文件的初始化。
其中,第一版本参数文件为:
double cflMGTimes=1.0;
double cfl_end=10.0;
double eps_vencat=5.0;
int iviscous=3;
int gridUnit=0;
string visname=“leq-sa”;
步骤二:按步骤一的方式提取相邻两个版本参数文件的参数名到列表。解算器的研发是一个版本迭代的过程,新版本的研发是基于上一个版本所推进,参数名可能变更,需要对比相邻两个版本的参数文件,以得到正确的参数变更关系,在此之前需要提取相邻两个版本代码的参数名,具体是:
对上一个版本参数即第一版本参数文件,用列表list_old = [参数1,参数2,……,参数N];
例如:list_old=[cflMGTimes, cfl_end,eps_vencat, iviscous,gridUnit,……,visname]),表示上一个版本参数文件中所有参数名的集合;
对新版本参数即第二版本参数文件,用列表list_new = [参数1,参数2,……,参数N];
例如:
list_new=[cflMGTimes, cfl_end, eps_vencat, viscousType,gridScaleFactor, …… , maxsimustep, viscousName],
表示新版本参数文件中所有参数名的集合。
步骤三:参数名置换。比较存储相邻两个版本参数文件中的参数名列表list_old与list_new,将列表中同名参数置换为0元素。
例如:list_old与list_new中同名参数为cflMGTimes,cfl_end,eps_vencat,……。
list_old=[cflMGTimes,cfl_end,eps_vencat,iviscous,gridUnit,……,visname];
list_new=[cflMGTimes, cfl_end, eps_vencat, viscousType,gridScaleFactor,…… , maxsimustep, viscousName]
将其置换为0元素,则得到:
list_old = [0, 0, 0,iviscous, gridUnit,0, ……,visname],
list_new= [0,0,0,viscousType,gridScaleFactor,0,......, viscousName])。
步骤四:区间比较。列表list_old与list_new中连续的非0元素记为一个区间,非0元素个数记为区间长度。区间的前一个0元素与后一个0元素的出现次数(出现次数从列表第一个元素开始,自左向右计算)记为区间起点元素与区间终点元素。
如果列表list_old与list_new的区间长度、起点元素与终点元素均相同,则该区间内的参数名是相对应的。将参数的变更关系更新至参数变更关系文件,并把该区间内的所有参数名置为0元素。
例如:
list_old的区间长度为3,iviscous, gridUnit, visname ;
list_new的区间长度为3, viscousType,gridScaleFactor, viscousName ;
对比可知,区间长度,区间起点与终点元素都相同,则参数名iviscous与viscousType, 参数名gridUnit与gridScaleFactor是相对应的,visname和viscousName相对应。
步骤五:解算器遍历执行待定参数名。如果列表list_old与list_new均存在非0元素,记为待定参数名。将标准算例参数文件中与list_old待定参数名中的同名参数依次替换为list_new的待定参数名,再使用解算器运行该算例。如果运行成功,说明这对参数是相对应的,并将参数名的对应关系存入参数变更关系文件,否则继续重复执行该步骤。
步骤四执行完毕后,list_old = [0, 0, 0,0, 0, ……,visname],list_new=[0, 0, 0,0, 0, ……,maxsimustep, viscousName]。list_old与list_new均存在非0元素,list_old的待定参数为visname。list_new的待定参数为maxsimustep,viscousName。
将标准算例中参数文件里的参数名visname替换为新版本待定参数名maxsimustep,再用解算器运行该算例。
如果执行成功,参数名visname与maxsimustep是相对应的。否则将参数名visname替换为新版本待定参数名viscousName,并再次执行,根据结果判断对应关系)。
步骤六:新版本参数自适应。新版本参数文件中的参数名如果与此前的算例数据库不一致,直接使用解算器运行算例会非正常退出。根据参数变更关系文件,将算例数据库中每个算例对应的该参数的参数名更新为对应的新版本参数名,从而完成参数的自适应,解算器可正确运行算例。
以参数名iviscous为例。iviscous在3008版本出现,到7047版本参数名变更为viscousType。若当前版本小于7047,则算例参数文件中的参数名iviscous保存不变,若版本大于等于7047,算例参数文件中的参数名iviscous修改为viscousType。
其中,对第一版本参数文件进行自适应修改后,得到如下结果:
double cflMGTimes=1.0;
double cfl_end=10.0;
double eps_vencat=5.0;
int iviscousType=3;
int gridScaleFactor=0;
string viscousname=“leq-sa”;
上述步骤中,步骤一只需执行一次。
上述步骤中,步骤二~步骤六对相邻两个版本参数文件执行,迭代更新参数变更关系文件。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
本申请实施例提供的版本对比方法,通过通过获取第一版本参数文件和第二版本参数文件,其中,第一版本参数文件至少包括第一参数名列表,第二版本参数文件至少包括第二参数名列表;比较第一参数名列表和第二参数名列表;若第一参数名列表中的第一参数名和第二参数名列表中的第二参数名不同,则根据第一参数名和第二参数名,确定待更新参数名;其中,待更新参数名与第一参数名相对应;根据待更新参数名,以及版本参数文件和参数名的对应关系,对第一版本参数文件进行更新,通过本发明实施例中建立的参数名和版本参数文件的对应关系,对参数名进行判断,使用参数名对版本参数文件进行更新,实现多版本解算器的参数自适应。
本申请另一实施例提供一种版本对比装置,用于执行上述实施例提供的版本对比方法。
参照图3,示出了本申请的一种版本对比装置实施例的结构框图,该装置具体可以包括如下模块:获取模块301、比较模块302、确定模块303和更新模块304,其中:
获取模块301用于获取第一版本参数文件和第二版本参数文件,其中,第一版本参数文件至少包括第一参数名列表,第二版本参数文件至少包括第二参数名列表;
比较模块302用于比较第一参数名列表和第二参数名列表;
确定模块303用于若第一参数名列表中的第一参数名和第二参数名列表中的第二参数名不同,则根据第一参数名和第二参数名,确定待更新参数名;其中,待更新参数名与第一参数名相对应;
更新模块304用于根据待更新参数名,以及版本参数文件和参数名的对应关系,对第一版本参数文件进行更新。
本申请实施例提供的版本对比装置,通过通过获取第一版本参数文件和第二版本参数文件,其中,第一版本参数文件至少包括第一参数名列表,第二版本参数文件至少包括第二参数名列表;比较第一参数名列表和第二参数名列表;若第一参数名列表中的第一参数名和第二参数名列表中的第二参数名不同,则根据第一参数名和第二参数名,确定待更新参数名;其中,待更新参数名与第一参数名相对应;根据待更新参数名,以及版本参数文件和参数名的对应关系,对第一版本参数文件进行更新,通过本发明实施例中建立的参数名和版本参数文件的对应关系,对参数名进行判断,使用参数名对版本参数文件进行更新,实现多版本解算器的参数自适应。
本申请又一实施例对上述实施例提供的版本对比装置做进一步补充说明。
可选地,获取模块还用于:
获取与第一版本参数文件对应的参数名变更关系文件,其中,参数名变更关系文件至少包括参数名,与参数名对应的参数类型和与参数名对应的参数值。
可选地,更新模块用于:
若第一参数名列表中的第一参数名和第二参数名列表中的第二参数名相同,则将第一参数名和第二参数名设置为第一预设值;
根据第一预设值出现的次数,确定元素区间,元素区间至少包括区间起点元素和区间终点元素;
若第一参数名列表中的第一预设值的个数和第二参数名列表中的第一预设值的个数相同,且第一参数名列表中的元素区间和第二参数名列表的元素区间相同,则与第一预设值对应的第一参数名和与第一预设值对应的第二参数名相对应。
可选地,更新模块用于:
若第一参数名列表中的第一预设值的个数和第二参数名列表中的第一预设值的个数不同,和/或第一参数名列表中的元素区间和第二参数名列表的元素区间不同,则获取第一参数名列表中第三参数名和第二参数名列表中的第四参数名;且第三参数名和第四参数名被设置为第二预设值;
若第四参数名与第三参数名相匹配,则采用第四参数名对第三参数名进行更新。
可选地,更新模块用于:
若第四参数名与第三参数名不匹配,则获取第二参数名列表中的第五参数名;
采用第五参数名与第三参数名进行匹配,若第五参数名与第三参数名匹配,则采用第五参数名对第三参数名进行更新。
可选地,更新模块用于:
若当前版本的序号小于第一版本的序号,则采用与第一版本的序号对应的第一版本参数文件执行与第一版本参数文件对应的算例;
若当前版本的序号大于等于第一版本的序号,则采用第二版本参数文件,执行与第二版本参数文件对应的算例。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请实施例提供的版本对比装置,通过通过获取第一版本参数文件和第二版本参数文件,其中,第一版本参数文件至少包括第一参数名列表,第二版本参数文件至少包括第二参数名列表;比较第一参数名列表和第二参数名列表;若第一参数名列表中的第一参数名和第二参数名列表中的第二参数名不同,则根据第一参数名和第二参数名,确定待更新参数名;其中,待更新参数名与第一参数名相对应;根据待更新参数名,以及版本参数文件和参数名的对应关系,对第一版本参数文件进行更新,通过本发明实施例中建立的参数名和版本参数文件的对应关系,对参数名进行判断,使用参数名对版本参数文件进行更新,实现多版本解算器的参数自适应。
本申请再一实施例提供一种终端设备,用于执行上述实施例提供的版本对比方法。
图4是本申请的一种终端设备的结构示意图,如图4所示,该终端设备包括:至少一个处理器401和存储器402;
存储器存储计算机程序;至少一个处理器执行存储器存储的计算机程序,以实现上述实施例提供的版本对比方法。
本实施例提供的终端设备,通过通过获取第一版本参数文件和第二版本参数文件,其中,第一版本参数文件至少包括第一参数名列表,第二版本参数文件至少包括第二参数名列表;比较第一参数名列表和第二参数名列表;若第一参数名列表中的第一参数名和第二参数名列表中的第二参数名不同,则根据第一参数名和第二参数名,确定待更新参数名;其中,待更新参数名与第一参数名相对应;根据待更新参数名,以及版本参数文件和参数名的对应关系,对第一版本参数文件进行更新,通过本发明实施例中建立的参数名和版本参数文件的对应关系,对参数名进行判断,使用参数名对版本参数文件进行更新,实现多版本解算器的参数自适应。
本申请又一实施例提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,计算机程序被执行时实现上述任一实施例提供的版本对比方法。
根据本实施例的计算机可读存储介质,通过通过获取第一版本参数文件和第二版本参数文件,其中,第一版本参数文件至少包括第一参数名列表,第二版本参数文件至少包括第二参数名列表;比较第一参数名列表和第二参数名列表;若第一参数名列表中的第一参数名和第二参数名列表中的第二参数名不同,则根据第一参数名和第二参数名,确定待更新参数名;其中,待更新参数名与第一参数名相对应;根据待更新参数名,以及版本参数文件和参数名的对应关系,对第一版本参数文件进行更新,通过本发明实施例中建立的参数名和版本参数文件的对应关系,对参数名进行判断,使用参数名对版本参数文件进行更新,实现多版本解算器的参数自适应。
应该指出,上述详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语均具有与本申请所属技术领域的普通技术人员的通常理解所相同的含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式。此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,以便这里描述的本申请的实施方式能够以除了在这里图示或描述的那些以外的顺序实施。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于描述,在这里可以使用空间相对术语,如“在……之上”、“在……上方”、“在……上表面”、“上面的”等,用来描述如在图中所示的一个器件或特征与其他器件或特征的空间位置关系。应当理解的是,空间相对术语旨在包含除了器件在图中所描述的方位之外的在使用或操作中的不同方位。例如,如果附图中的器件被倒置,则描述为“在其他器件或构造上方”或“在其他器件或构造之上”的器件之后将被定位为“在其他器件或构造下方”或“在其他器件或构造之下”。因而,示例性术语“在……上方”可以包括“在……上方”和“在……下方”两种方位。该器件也可以其他不同方式定位,如旋转90度或处于其他方位,并且对这里所使用的空间相对描述作出相应解释。
在上面详细的说明中,参考了附图,附图形成本文的一部分。在附图中,类似的符号典型地确定类似的部件,除非上下文以其他方式指明。在详细的说明书、附图及权利要求书中所描述的图示说明的实施方案不意味是限制性的。在不脱离本文所呈现的主题的精神或范围下,其他实施方案可以被使用,并且可以作其他改变。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种版本对比方法,其特征在于,所述方法包括:
获取第一版本参数文件和第二版本参数文件,其中,所述第一版本参数文件至少包括第一参数名列表,所述第二版本参数文件至少包括第二参数名列表;
比较所述第一参数名列表和所述第二参数名列表;
若所述第一参数名列表中的第一参数名和所述第二参数名列表中的第二参数名不同,则根据所述第一参数名和所述第二参数名,确定待更新参数名;其中,所述待更新参数名与所述第一参数名相对应;
根据所述待更新参数名,以及版本参数文件和参数名的对应关系,对所述第一版本参数文件进行更新。
2.根据权利要求1所述的版本对比方法,其特征在于,在获取所述第二版本参数文件之前,所述方法还包括:
获取与所述第一版本参数文件对应的参数名变更关系文件,其中,所述参数名变更关系文件至少包括参数名,与所述参数名对应的参数类型和与所述参数名对应的参数值。
3.根据权利要求2所述的版本对比方法,其特征在于,所述方法包括:
若所述第一参数名列表中的第一参数名和所述第二参数名列表中的第二参数名相同,则将所述第一参数名和所述第二参数名设置为第一预设值;
根据所述第一预设值出现的次数,确定元素区间,所述元素区间至少包括区间起点元素和区间终点元素;
若所述第一参数名列表中的第一预设值的个数和所述第二参数名列表中的第一预设值的个数相同,且所述第一参数名列表中的元素区间和所述第二参数名列表的元素区间相同,则与所述第一预设值对应的第一参数名和与所述第一预设值对应的第二参数名相对应。
4.根据权利要求3所述的版本对比方法,其特征在于,所述方法包括:
若所述第一参数名列表中的第一预设值的个数和所述第二参数名列表中的第一预设值的个数不同,和/或所述第一参数名列表中的元素区间和所述第二参数名列表的元素区间不同,则获取所述第一参数名列表中第三参数名和所述第二参数名列表中的第四参数名;且所述第三参数名和所述第四参数名被设置为第二预设值;
若所述第四参数名与所述第三参数名相匹配,则采用所述第四参数名对所述第三参数名进行更新。
5.根据权利要求4所述的版本对比方法,其特征在于,所述方法还包括:
若所述第四参数名与所述第三参数名不匹配,则获取所述第二参数名列表中的第五参数名;
采用所述第五参数名与所述第三参数名进行匹配,若所述第五参数名与所述第三参数名匹配,则采用所述第五参数名对所述第三参数名进行更新。
6.根据权利要求4所述的版本对比方法,其特征在于,所述方法还包括:
若当前版本的序号小于第一版本的序号,则采用与所述第一版本的序号对应的第一版本参数文件执行与所述第一版本参数文件对应的算例;
若当前版本的序号大于等于所述第一版本的序号,则采用第二版本参数文件,执行与所述第二版本参数文件对应的算例。
7.一种版本对比装置,其特征在于,所述装置包括:
获取模块,用于获取第一版本参数文件和第二版本参数文件,其中,所述第一版本参数文件至少包括第一参数名列表,所述第二版本参数文件至少包括第二参数名列表;
比较模块,用于比较所述第一参数名列表和所述第二参数名列表;
确定模块,用于若所述第一参数名列表中的第一参数名和所述第二参数名列表中的第二参数名不同,则根据所述第一参数名和所述第二参数名,确定待更新参数名;其中,所述待更新参数名与所述第一参数名相对应;
更新模块,用于根据所述待更新参数名,以及版本参数文件和参数名的对应关系,对所述第一版本参数文件进行更新。
8.根据权利要求7所述的版本对比装置,其特征在于,所述获取模块还用于:
获取与所述第一版本参数文件对应的参数名变更关系文件,其中,所述参数名变更关系文件至少包括参数名,与所述参数名对应的参数类型和与所述参数名对应的参数值。
9.一种终端设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机程序;所述至少一个处理器执行所述存储器存储的计算机程序,以实现权利要求1-6中任一项所述的版本对比方法。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有计算机程序,所述计算机程序被执行时实现权利要求1-6中任一项所述的版本对比方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310364528.6A CN116069676B (zh) | 2023-04-07 | 2023-04-07 | 版本对比方法、装置、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310364528.6A CN116069676B (zh) | 2023-04-07 | 2023-04-07 | 版本对比方法、装置、终端设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116069676A true CN116069676A (zh) | 2023-05-05 |
CN116069676B CN116069676B (zh) | 2023-06-09 |
Family
ID=86173563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310364528.6A Active CN116069676B (zh) | 2023-04-07 | 2023-04-07 | 版本对比方法、装置、终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116069676B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105743698A (zh) * | 2016-01-27 | 2016-07-06 | 宇龙计算机通信科技(深圳)有限公司 | 一种参数处理方法及终端 |
CN107239303A (zh) * | 2017-05-11 | 2017-10-10 | 北京五八信息技术有限公司 | 应用程序更新包生成及应用程序更新的方法、装置 |
CN108717360A (zh) * | 2018-08-24 | 2018-10-30 | 江苏神州信源系统工程有限公司 | 一种软件版本更新方法与装置 |
US10133650B1 (en) * | 2017-10-10 | 2018-11-20 | Fujitsu Limited | Automated API parameter resolution and validation |
CN109617646A (zh) * | 2018-10-22 | 2019-04-12 | 中国平安财产保险股份有限公司 | 报文转换方法、装置、计算机设备及计算机可读存储介质 |
CN112114836A (zh) * | 2019-06-19 | 2020-12-22 | 西安诺瓦星云科技股份有限公司 | 文件更新方法、装置及系统、存储介质和显示箱体 |
CN113672267A (zh) * | 2021-09-03 | 2021-11-19 | 中国银行股份有限公司 | 一种参数更新方法及装置 |
CN114116031A (zh) * | 2021-11-22 | 2022-03-01 | 曙光信息产业股份有限公司 | 选项参数同步方法、装置、计算机设备和存储介质 |
-
2023
- 2023-04-07 CN CN202310364528.6A patent/CN116069676B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105743698A (zh) * | 2016-01-27 | 2016-07-06 | 宇龙计算机通信科技(深圳)有限公司 | 一种参数处理方法及终端 |
CN107239303A (zh) * | 2017-05-11 | 2017-10-10 | 北京五八信息技术有限公司 | 应用程序更新包生成及应用程序更新的方法、装置 |
US10133650B1 (en) * | 2017-10-10 | 2018-11-20 | Fujitsu Limited | Automated API parameter resolution and validation |
CN108717360A (zh) * | 2018-08-24 | 2018-10-30 | 江苏神州信源系统工程有限公司 | 一种软件版本更新方法与装置 |
CN109617646A (zh) * | 2018-10-22 | 2019-04-12 | 中国平安财产保险股份有限公司 | 报文转换方法、装置、计算机设备及计算机可读存储介质 |
CN112114836A (zh) * | 2019-06-19 | 2020-12-22 | 西安诺瓦星云科技股份有限公司 | 文件更新方法、装置及系统、存储介质和显示箱体 |
CN113672267A (zh) * | 2021-09-03 | 2021-11-19 | 中国银行股份有限公司 | 一种参数更新方法及装置 |
CN114116031A (zh) * | 2021-11-22 | 2022-03-01 | 曙光信息产业股份有限公司 | 选项参数同步方法、装置、计算机设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
TJ ROCKEFELLER: "Working with parameter versions", HTTPS://STACKOVERFLOW.COM/QUESTIONS/38058190/CHANGE-PARAMETER-NAME-WITHOUT-BREAKING-BACKWARDS-COMPATIBILITY * |
李锦绣: "基于.NET框架的工厂智能监控分析系统的设计与实现", 中国优秀硕士学位论文全文数据库 (信息科技辑), pages 138 - 383 * |
Also Published As
Publication number | Publication date |
---|---|
CN116069676B (zh) | 2023-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Behnamghader et al. | A large-scale study of architectural evolution in open-source software systems | |
US11194550B2 (en) | System and method for migrating legacy software to a system common architecture | |
US8869111B2 (en) | Method and system for generating test cases for a software application | |
CN107239392B (zh) | 一种测试方法、装置、终端及存储介质 | |
CN111382070B (zh) | 兼容性测试方法、装置、存储介质和计算机设备 | |
US20110209119A1 (en) | Interactive iterative program parallelization based on dynamic feedback | |
CN115543402B (zh) | 一种基于代码提交的软件知识图谱增量更新方法 | |
Zanetti et al. | Automated software remodularization based on move refactoring: a complex systems approach | |
EP3701403B1 (en) | Accelerated simulation setup process using prior knowledge extraction for problem matching | |
US10310961B1 (en) | Cognitive dynamic script language builder | |
Clark et al. | Testing causality in scientific modelling software | |
CN116088846A (zh) | 一种持续集成代码格式的处理方法、相关装置及设备 | |
CN116069676B (zh) | 版本对比方法、装置、终端设备及存储介质 | |
CN110674044B (zh) | 功能自动化测试的覆盖率获取方法、系统、设备及介质 | |
CN116823059A (zh) | 一种指标评估方法及装置、电子设备、存储介质 | |
US9396239B2 (en) | Compiling method, storage medium and compiling apparatus | |
CN114416596A (zh) | 一种测试应用的方法、装置、计算机设备及存储介质 | |
Cała et al. | Selective and recurring re-computation of big data analytics tasks: insights from a genomics case study | |
CN113986237A (zh) | Jenkins编译任务的创建方法、装置 | |
CN113626044A (zh) | 服务管理方法及装置 | |
EP3671467A1 (en) | Gui application testing using bots | |
US11947958B2 (en) | Method, device, and program product for managing object in software development project | |
CN111580828B (zh) | 机器学习模型的编译优化方法和装置 | |
CN109814911A (zh) | 用于管理脚本程序的方法、装置、计算机设备及存储介质 | |
CN117806981B (zh) | 一种cfd软件自动化测试方法及系统 |
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 |