当前位置: 首页 > news >正文

2023全国大学生软件测试大赛开发者测试练习题满分答案(PairingHeap2023)

2023全国大学生软件测试大赛开发者测试练习题满分答案(PairingHeap2023)

  • 题目详情
  • 题解代码(直接全部复制到test类中即可)


提示:该题只需要分支覆盖得分即可,不需要变异得分

题目详情

在这里插入图片描述
在这里插入图片描述




题解代码(直接全部复制到test类中即可)

package net.mooctest;import static org.junit.Assert.*;import java.lang.reflect.Method;import java.lang.reflect.InvocationTargetException;import org.junit.Before;import org.junit.Test;public class Heap_ItemTest {@Testpublic void test() {Heap_Item<String> heap_Item0 = new Heap_Item<String>(",");Heap_Item<String> heap_Item1 = new Heap_Item<String>(",");heap_Item1.setLeftSon(heap_Item0);heap_Item0.setLeftSon(heap_Item1);heap_Item0.setRightSon(heap_Item1);heap_Item1.replaceChild("$", heap_Item0);heap_Item0.getSonByData(",");heap_Item0.getSonByData("");assertTrue(heap_Item0.hasLeftSon());}@Testpublic void test1() {Heap_Item<String> heap_Item0 = new Heap_Item<String>(",");Heap_Item<String> heap_Item1 = new Heap_Item<String>(",");heap_Item1.setLeftSon(heap_Item0);heap_Item0.setLeftSon(heap_Item1);heap_Item0.setRightSon(heap_Item1);heap_Item1.replaceChild(",", heap_Item0);heap_Item0.getSonByData(",");heap_Item0.getSonByData("");assertTrue(heap_Item0.hasLeftSon());}@Testpublic void test2() {Heap_Item<String> heap_Itema=new Heap_Item<String>("a");Heap_Item<String> heap_Itemb=new Heap_Item<String>("b");Heap_Item<String> heap_Itemc=new Heap_Item<String>("c");Heap_Item<String> heap_Itemd=new Heap_Item<String>("d");Heap_Item<String> heap_Iteme=new Heap_Item<String>("e");Heap_Item<String> heap_Itemk=new Heap_Item<String>("k");Heap_Item<String> heap_Itemp=new Heap_Item<String>("p");Heap_Item<String> heap_Itemq=new Heap_Item<String>("q");heap_Itema.setLeftSon(heap_Itemb);heap_Itema.setRightSon(heap_Itemc);heap_Itemb.setRightSon(heap_Itemd);heap_Itemb.setLeftSon(heap_Iteme);heap_Itemb.replaceChild("e", heap_Itemk);heap_Itemb.replaceChild("d", heap_Itemk);heap_Itemb.itIsLeftSon(heap_Itemk);heap_Iteme.setLeftSon(heap_Itemp);heap_Itemq.setLeftSon(heap_Itemq);heap_Iteme.removeLeftSon();heap_Iteme.removeRightSon();heap_Itemb.removeChild("k");heap_Itemb.removeChild("k");heap_Itemb.removeChild("a");Heap_Item <String> heap_Itema1= heap_Itema.getLeftSon();assertSame(heap_Itema1,heap_Itemb);heap_Itemb.setAncestor(heap_Itema);Heap_Item <String> heap_Itemn= heap_Itemb.getAncestor();assertSame(heap_Itema,heap_Itemb.getAncestor());assertEquals(heap_Itema,heap_Itemn);//设置节点c的祖先为aheap_Itemc.setAncestor(heap_Itema);//节点a无祖先,于是返回nullHeap_Item <String> heap_Itemanull=heap_Itema.getMultiWayAncestor();assertNull(heap_Itemanull);//节点b有祖先a,同时又是它的左孩子,于是返回他的祖先aHeap_Item <String> heap_Itembnull=heap_Itemb.getMultiWayAncestor();assertNotNull(heap_Itembnull);assertSame(heap_Itema,heap_Itembnull);}@Testpublic void testMul() {Heap_Item<String> heap_Itema=new Heap_Item<String>("a");Heap_Item<String> heap_Itemb=new Heap_Item<String>("b");Heap_Item<String> heap_Itemc=new Heap_Item<String>("c");Heap_Item<String> heap_Itemd=new Heap_Item<String>("d");Heap_Item<String> heap_Iteme=new Heap_Item<String>("e");Heap_Item<String> heap_Itemk=new Heap_Item<String>("k");Heap_Item<String> heap_Itemp=new Heap_Item<String>("p");Heap_Item<String> heap_Itemq=new Heap_Item<String>("q");heap_Itema.setLeftSon(heap_Itemb);heap_Itema.setRightSon(heap_Itemc);heap_Itemb.setRightSon(heap_Itemd);heap_Itemb.setLeftSon(heap_Iteme);heap_Itemb.replaceChild("e", heap_Itemk);heap_Itemb.replaceChild("d", heap_Itemk);heap_Itemb.itIsLeftSon(heap_Itemk);heap_Iteme.setLeftSon(heap_Itemp);heap_Itemq.setLeftSon(heap_Itemq);heap_Iteme.removeLeftSon();heap_Iteme.removeRightSon();heap_Itemb.removeChild("k");heap_Itemb.removeChild("k");heap_Itemb.removeChild("a");Heap_Item <String> heap_Itema1= heap_Itema.getLeftSon();assertSame(heap_Itema1,heap_Itemb);heap_Itemb.setAncestor(heap_Itema);Heap_Item <String> heap_Itemn= heap_Itemb.getAncestor();assertSame(heap_Itema,heap_Itemb.getAncestor());assertEquals(heap_Itema,heap_Itemn);//设置节点c的祖先为aheap_Itemc.setAncestor(heap_Itema);//节点a无祖先,于是返回nullHeap_Item <String> heap_Itemanull=heap_Itema.getMultiWayAncestor();assertNull(heap_Itemanull);//节点b有祖先a,同时又是它的左孩子,于是返回他的祖先aHeap_Item <String> heap_Itembnull=heap_Itemb.getMultiWayAncestor();assertNotNull(heap_Itembnull);assertSame(heap_Itema,heap_Itembnull);//先给a设置右祖先Heap_Item <String> heap_Items1 = new Heap_Item<String>("s1");heap_Itema.setAncestor(heap_Items1);heap_Items1.setLeftSon(heap_Itema);//检查a的祖先是否为s1assertSame(heap_Items1,heap_Itema.getAncestor());//检查c的祖先是否为aassertSame(heap_Itema,heap_Itemc.getAncestor());//给s1复制左孩子为s2Heap_Item <String> heap_Items2 = new Heap_Item<String>("s2");heap_Items2.setAncestor(heap_Items1);heap_Items1.setRightSon(heap_Items2);//节点c有祖先a,但是a的右孩子,于是返回a的最近的以a作为左子孙的祖先,即s1Heap_Item <String> heap_Itemcnull=heap_Itemc.getMultiWayAncestor();assertSame(heap_Itemcnull,heap_Items1);}@Testpublic void testpair() throws NoSuchMethodException, InvocationTargetException, IllegalAccessException{Class<Pairing_Heap> c = Pairing_Heap.class;Heap_Item<String>  a1=new Heap_Item<>("a1");Heap_Item<String> a2=new Heap_Item<>("a2");Heap_Item<String> b1=new Heap_Item<>("b1");a1.setLeftSon(b1);b1.setAncestor(a1);Pairing_Heap<String> p1=new Pairing_Heap<>(a1);Pairing_Heap<String> p2=new Pairing_Heap<>(a2);Method pair = c.getDeclaredMethod("pair", Pairing_Heap.class, Pairing_Heap.class);pair.setAccessible(true);//情况3Pairing_Heap<String> k=new Pairing_Heap<>();Object invoke = pair.invoke(k, p1, p2);//情况1Pairing_Heap<String> null1=new Pairing_Heap<>();Object invoke1= pair.invoke(k, null1,p2);//情况2pair.invoke(k, p1,null1);//情况4Heap_Item<String>  d1=new Heap_Item<>("d1");Heap_Item<String> d2=new Heap_Item<>("d2");Pairing_Heap<String> pd1=new Pairing_Heap<>(d1);Pairing_Heap<String> pd2=new Pairing_Heap<>(d2);pair.invoke(k, pd1,pd2);//情况5Heap_Item<String>  e1=new Heap_Item<>("e1");Heap_Item<String> e2=new Heap_Item<>("e2");Heap_Item<String> be1=new Heap_Item<>("be1");e1.setLeftSon(be1);be1.setAncestor(e1);Pairing_Heap<String> pe1=new Pairing_Heap<>(e2);Pairing_Heap<String> pe2=new Pairing_Heap<>(e1);pair.invoke(k, pe1,pe2);//情况6Heap_Item<String>  f1=new Heap_Item<>("e1");Heap_Item<String> f2=new Heap_Item<>("e2");Pairing_Heap<String> pf1=new Pairing_Heap<>(f2);Pairing_Heap<String> pf2=new Pairing_Heap<>(f1);pair.invoke(k, pf1,pf2);}@Testpublic void testpop_heap_item() throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {Class<Pairing_Heap> fun = Pairing_Heap.class;//情况1Pairing_Heap<String> null1=new Pairing_Heap<>();Method pair =fun.getDeclaredMethod("pop_heap_item");pair.setAccessible(true);pair.invoke(null1);//情况2Heap_Item<String> b=new Heap_Item<>("b");Pairing_Heap<String> pb=new Pairing_Heap<>(b);pair.invoke(pb);//情况3Heap_Item<String> c=new Heap_Item<>("c");Heap_Item<String> cb=new Heap_Item<>("cb");c.setLeftSon(cb);cb.setAncestor(c);Pairing_Heap<String> pc=new Pairing_Heap<>(c);pair.invoke(pc);//情况四Heap_Item<String> d=new Heap_Item<>("d");Heap_Item<String> db=new Heap_Item<>("db");Heap_Item<String> dbc=new Heap_Item<>("dbc");Heap_Item<String> dbc0=new Heap_Item<>("dbc0");d.setLeftSon(db);db.setAncestor(d);db.setRightSon(dbc);db.setLeftSon(dbc0);dbc0.setAncestor(db);dbc.setAncestor(dbc);Pairing_Heap<String> pd=new Pairing_Heap<>(d);pair.invoke(pd);}@Testpublic void testpush() {//根为空的情况Pairing_Heap<String> null1=new Pairing_Heap<>();Heap_Item<String> d=new Heap_Item<>("d");null1.push(d);//根不为空的情况Heap_Item<String> c=new Heap_Item<>("c");Pairing_Heap<String> pc=new Pairing_Heap<>(c);Heap_Item k=pc.push(d);}@Testpublic void testcheckPriority1_2() {//情况1,2Heap_Item<String> a=new Heap_Item<>("a");Heap_Item<String> b=new Heap_Item<>("b");Heap_Item<String> c=new Heap_Item<>("c");Heap_Item<String> k=new Heap_Item<>("k");Pairing_Heap<String> p=new Pairing_Heap<>();c.setLeftSon(a);a.setAncestor(c);a.setRightSon(b);b.setAncestor(a);b.setRightSon(k);k.setAncestor(b);p.checkPriority(b);}@Testpublic void testcheckPriority3() {//情况3Heap_Item<String> k=new Heap_Item<>("k");Heap_Item<String> b1=new Heap_Item<>("b1");Heap_Item<String> b2=new Heap_Item<>("b2");Pairing_Heap<String> p=new Pairing_Heap<>();k.setLeftSon(b1);k.setRightSon(b2);b1.setAncestor(k);b2.setAncestor(k);p.checkPriority(k);}@Testpublic void testcheckPriority4() {//情况4Heap_Item<String> a=new Heap_Item<>("a");Heap_Item<String> k=new Heap_Item<>("k");Heap_Item<String> b1=new Heap_Item<>("b1");Heap_Item<String> b2=new Heap_Item<>("b2");Pairing_Heap<String> p=new Pairing_Heap<>();a.setLeftSon(k);k.setAncestor(a);k.setLeftSon(b1);k.setRightSon(b2);b1.setAncestor(k);b2.setAncestor(k);p.checkPriority(k);}@Testpublic void testcheckPriority5() {//情况5Heap_Item<String> k=new Heap_Item<>("k");Heap_Item<String> z=new Heap_Item<>("z");k.setLeftSon(z);z.setAncestor(k);Pairing_Heap<String> p=new Pairing_Heap<>();p.checkPriority(k);}@Testpublic void testcheckPriority6() {//情况6Heap_Item<String> k=new Heap_Item<>("k");Heap_Item<String> z=new Heap_Item<>("z");z.setLeftSon(k);k.setAncestor(z);Pairing_Heap<String> p=new Pairing_Heap<>();p.checkPriority(k);}@Testpublic void testcheckPriority7() {//情况7Heap_Item<String> k=new Heap_Item<>("k");Heap_Item<String> z=new Heap_Item<>("z");k.setLeftSon(z);z.setAncestor(k);Pairing_Heap<String> p=new Pairing_Heap<>();p.checkPriority(z);}@Testpublic void testcheckPriority8() {//情况8Heap_Item<String> a=new Heap_Item<>("a");Heap_Item<String> z=new Heap_Item<>("z");Heap_Item<String> b=new Heap_Item<>("b");a.setLeftSon(z);z.setAncestor(a);z.setLeftSon(b);b.setAncestor(z);Pairing_Heap<String> p=new Pairing_Heap<>();p.checkPriority(z);}@Testpublic void testcheckPriority9() {//情况9Heap_Item<String> a=new Heap_Item<>("a");Heap_Item<String> b=new Heap_Item<>("b");Heap_Item<String> c=new Heap_Item<>("c");Heap_Item<String> d=new Heap_Item<>("d");a.setLeftSon(b);b.setAncestor(a);b.setLeftSon(c);c.setAncestor(b);c.setRightSon(d);d.setAncestor(c);Pairing_Heap<String> p=new Pairing_Heap<>();p.checkPriority(b);}@Testpublic void testgetData() {Heap_Item<String> null2=new Heap_Item<>();null2.getData();}@Testpublic void testgetSonByData() {Heap_Item<String> k=new Heap_Item<>("k");Heap_Item<String> z=new Heap_Item<>("z");Heap_Item<String> z2=new Heap_Item<>("z2");Heap_Item<String> z1=new Heap_Item<>("z1");k.setLeftSon(z);k.setRightSon(z2);z2.setAncestor(k);z.setAncestor(k);k.removeChild("z1");}@Testpublic void testgetSonByData1() {Heap_Item<String> k=new Heap_Item<>("k");k.getSonByData(null);Heap_Item<String> z2=new Heap_Item<>("z2");k.setRightSon(z2);z2.setAncestor(k);k.getSonByData("z2");}@Testpublic void testreplaceChild1() {Heap_Item<String> k=new Heap_Item<>("k");Heap_Item<String> z2=new Heap_Item<>("z2");k.setRightSon(z2);z2.setAncestor(k);k.replaceChild("z1", z2);}@Testpublic void testgetMultiWayAncestor2() {Heap_Item<String> k=new Heap_Item<>("k");Heap_Item<String> c=new Heap_Item<>("c");Heap_Item<String> a=new Heap_Item<>("a");Heap_Item<String> b=new Heap_Item<>("b");c.setLeftSon(k);k.setAncestor(c);k.setRightSon(a);a.setAncestor(k);a.setRightSon(b);b.setAncestor(a);b.getMultiWayAncestor();}@Testpublic void testpop() {Heap_Item<String> k=new Heap_Item<>("k");Heap_Item<String> z=new Heap_Item<>("z");k.setLeftSon(z);z.setAncestor(k);Pairing_Heap<String> p=new Pairing_Heap<>();Pairing_Heap<String> p1=new Pairing_Heap<>(k);p.pop();p1.pop();}
}
http://www.lryc.cn/news/189155.html

相关文章:

  • 介绍一下tokens
  • 机器学习、深度学习相关的项目集合【自行选择即可】
  • 百面机器学习书刊纠错
  • vue2安装cesium并使用
  • 基于Docker来部署Nacos的注册中心
  • 黑马JVM总结(三十一)
  • 【C++】list基本接口+手撕 list(详解迭代器)
  • PowerShell pnpm : 无法加载文件 C:\Users\lenovo\AppData\Roaming\npm\pnpm.ps1
  • mysql面试题33:Blob和text有什么区别
  • docker版jxTMS使用指南:4.6版升级内容
  • java最优建树算法
  • mysql面试题30:什么是数据库连接池、应用程序和数据库建立连接的过程、为什么需要数据库连接池、你知道哪些数据库连接池
  • 【Vue】vscode格式刷插件Prettier以及配置项~~保姆级教程
  • .NET 8 中的调试增强功能
  • 1310. 数三角形
  • 数据库基础(一)
  • Factory-Method
  • 【C++】神奇字符串(力扣481)
  • elasticsearch索引的数据类型以及别名的使用
  • 分布式锁2:基于redis实现分布式锁
  • 【Vue面试题十六】、Vue.observable你有了解过吗?说说看
  • Centos7使用nginx搭建rtmp流媒体服务器
  • Springboot+vue4S店车辆管理系统(有报告),Javaee项目,springboot vue前后端分离项目。
  • Docker与Serverless计算的集成: Docker容器如何与Serverless计算结合。
  • Linux下kibana的安装与配置
  • LuatOS-SOC接口文档(air780E)-- http - http 客户端
  • 分布式文件服务器——初识MinIO
  • 中国34省级行政区及行政区划代码
  • vue、uniapp实现组件动态切换
  • JVM 虚拟机面试知识脑图 初高级