- 浏览: 42378 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (76)
- Dojo 组件 (1)
- 数据库 (7)
- Maven (3)
- 负载均衡 (4)
- Java (12)
- 多线程 (4)
- Spring (3)
- Java缓存 (3)
- 高并发 (3)
- 热部署 (2)
- 大数据 (3)
- 分布式 (1)
- Linux (4)
- 云计算 (1)
- Eclipse (2)
- Tomcat (2)
- Shell (1)
- Python (1)
- 测试 (3)
- 算法与数据结构 (1)
- 设计模式 (1)
- JQuery (1)
- Nginx (1)
- 开发工具 (7)
- JMS (2)
- CI 持续集成 (2)
- Java UI (0)
- UI (1)
- Jenkins (1)
- Ibatis (1)
- Hadoop (1)
- Zookeeper (1)
- Redis (1)
什么是 JUnit ?
JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(
regression testing framework)。Junit测试是程序员测试,即所谓
白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完
成什么样(What)的功能。Junit是一套框架,继承TestCase类,就可
以用Junit进行自动测试了。
JUnit的4大功能?
管理测试用例TestSuite
定义测试代码TestCase
定义测试环境
检验测试结果
测试类别?
CI (静态方法测试TU、动态方法测试TI、系统测试TS)
测试数据?
真实数据库数据、内存数据库H2
怎么写测试?
关注类本身的功能、测试不同输入结果、可重复的测试、测试与代码
本身同样重要,需要代码审查
JUnit测试中的一些问题?
Junit测试不是解决所有软件测试中的问题,对于框架中的一些问题需要第三方的类库去解决,比如HTTPUnit、JWebUnit、XMLUnit、GroboUtils多线程测试
Junit4
Test Annotation :
@Before
使用了该元数据的方法在每个测试方法执行之前都要执行一次
@BeforeClass
在所有方法执行之前执行
@After
使用了该元数据的方法在每个测试方法执行之后要执行一次
@AfterClass
在所有方法执行之后执行
@Ignore
该元数据标记的测试方法在测试中会被忽略
@Test
测试方法,顺序未知
@Test(expected=Exception.class)
通过@Test元数据中的expected属性。expected属性的值是一个异
常的类型
@Test(timeout=xxx):
该元数据传入了一个时间(毫秒)给测试方法,
如果测试方法在制定的时间之内没有运行完,则测试也失败
Junit3
需要继承一些类,比如TestCase
测试方法命名必须以小写的test开始
在setUp()方法中,主要是实现一些在测试工作前的资源及环境设置等的初始化设置;而针对方法的测试用例中,需要用户自己编写,一般是以“test+方法名”;
tearDown()在每个测试方法之后运行,用来撤消其初始化的测试环境。
执行当前所有的test case
import junit.framework.Test;
import junit.framework.TestSuite;
import android.test.suitebuilder.TestSuiteBuilder;
public class AllTests2 extends TestSuite{
public static Test suite() {
return new TestSuiteBuilder(AllTests2.class).includeAllPackagesUnderHere().build();
}
}
被测函数
public class SampleCaculator {
public int add(int augend , int addend) {
return augend + addend ;
}
public int subtration(int minuend , int subtrahend) {
return minuend - subtrahend;
}
}
顺序执行Junit测试case
exapmle1:
test suite:
import junit.framework.TestSuite;
public class AllTests3 extends TestSuite{
public static void main(String[] args) {
junit.textui.TestRunner.run(suite());
}
public static TestSuite suite() {
TestSuite suite= new TestSuite("Framework Tests");
suite.addTest(test.AllTests.suite());
suite.addTest(test.XMLTest5.suite());
return suite;
}
}
example2:
import junit.framework.Test;
import junit.framework.TestSuite;
public class AllTests extends TestSuite{
public static Test suite() {
TestSuite suite = new TestSuite("TestSuite Test");
suite.addTestSuite(XMLTest.class);
suite.addTestSuite(XMLTest2.class);
return suite;
}
}
测试的 test case
test case1:
import junit.framework.Assert;
import junit.framework.TestCase;
public class XMLTest2 extends TestCase {
protected int i3 = 3;
public void setUp(){
i3 = 5;
}
public void testValue(){
Assert.assertEquals(i3, 5);
}
public void tearDown(){
i3=0;
}
}
test case2:
import junit.framework.TestCase;
import junit.framework.TestSuite;
public class XMLTest5 extends TestCase {
private int fValue1;
private int fValue2;
private int unused;
//@Override
protected void setUp() {
fValue1= 2;
fValue2= 3;
}
public static TestSuite suite() {
return new TestSuite(XMLTest5.class);
}
public void testAdd() {
double result= fValue1 + fValue2;
// forced failure result == 5
assertTrue(result != 6);
}
//@Test(expected=Exception.class)
public void testDivideByZero() throws Exception{
int zero= 0;
int result = zero/8;
//int result= 8/zero;
unused= result; // avoid warning for not using result
assertSame(unused, result);
}
public void testEquals() {
assertEquals(12, 12);
assertEquals(12L, 12L);
assertEquals(new Long(12), new Long(12));
}
}
test case3:
顺序执行当前suitexia的所有测试
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
public class XMLTest6 extends TestCase {
private static int fValue1;
private static int fValue2;
private static int unused;
//@Override
protected void setUp() {
fValue1= 2;
fValue2= 3;
}
public static TestSuite testSuite() throws Exception {
TestSuite suite= new TestSuite("Test execute according list");
suite.addTest((junit.framework.Test) testDivideByZero());
suite.addTest((junit.framework.Test) testEquals());
suite.addTest((junit.framework.Test) testAdd());
return suite;
}
public static Test testAdd() {
double result= fValue1 + fValue2;
// forced failure result == 5
assertTrue(result != 6);
System.out.println("Test testAdd()");
return null;
}
//@Test(expected=Exception.class)
public static Test testDivideByZero() throws Exception{
int zero= 0;
int result = zero/8;
//int result= 8/zero;
unused= result; // avoid warning for not using result
assertSame(unused, result);
System.out.println("Test testDivideByZero()");
return null;
}
public static Test testEquals() {
assertEquals(12, 12);
assertEquals(12L, 12L);
assertEquals(new Long(12), new Long(12));
System.out.println("Test testEquals()");
return null;
}
}
Android and JUnit
JUnit in Andriod :
只有junit3被支持,
配置测试:
Android测试类需要继承android.test.AndroidTestCase
配置AndroidManifest.xml文件
1) <uses-libraryandroid:name="android.test.runner" /> 说明:与<activity>位置同级
2) <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.testandriod" android:label="Tests for My App" />
说明:与<application>标签同级,targetPackage属性与上面mainfest的package属性内容相同即可 -->
AndroidManifest.xml 配置
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.testandriod"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<uses-library android:name="android.test.runner" />
<activity android:name=".JunitTestActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.example.testandriod.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.testandriod" android:label="Tests for My App" />
</manifest>
主函数
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
测试test case
import junit.framework.Assert;
import com.example.testandriod.MainActivity;
import com.example.testandriod.R;
import android.test.ActivityInstrumentationTestCase2;
import android.widget.TextView;
public class XMLTest4 extends ActivityInstrumentationTestCase2<MainActivity> {
private TextView result;
public XMLTest4() {
super("test", MainActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
MainActivity mainActivity = getActivity();
result = (TextView) mainActivity.findViewById(R.id.action_settings);
}
public void testResult(){
Assert.assertNull(result);
}
}
www.junit.org
http://developer.android.com/sdk/index.html
http://tech.it168.com/a2010/1027/1118/000001118903_all.shtml
http://developer.samsung.com/android/technical-docs/Basics-of-JUnit-in-Android
http://hatsukiakio.blogspot.hk/2009/05/android-15-junit.html
http://my.oschina.net/liux/blog/52469
JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(
regression testing framework)。Junit测试是程序员测试,即所谓
白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完
成什么样(What)的功能。Junit是一套框架,继承TestCase类,就可
以用Junit进行自动测试了。
JUnit的4大功能?
管理测试用例TestSuite
定义测试代码TestCase
定义测试环境
检验测试结果
测试类别?
CI (静态方法测试TU、动态方法测试TI、系统测试TS)
测试数据?
真实数据库数据、内存数据库H2
怎么写测试?
关注类本身的功能、测试不同输入结果、可重复的测试、测试与代码
本身同样重要,需要代码审查
JUnit测试中的一些问题?
Junit测试不是解决所有软件测试中的问题,对于框架中的一些问题需要第三方的类库去解决,比如HTTPUnit、JWebUnit、XMLUnit、GroboUtils多线程测试
Junit4
Test Annotation :
@Before
使用了该元数据的方法在每个测试方法执行之前都要执行一次
@BeforeClass
在所有方法执行之前执行
@After
使用了该元数据的方法在每个测试方法执行之后要执行一次
@AfterClass
在所有方法执行之后执行
@Ignore
该元数据标记的测试方法在测试中会被忽略
@Test
测试方法,顺序未知
@Test(expected=Exception.class)
通过@Test元数据中的expected属性。expected属性的值是一个异
常的类型
@Test(timeout=xxx):
该元数据传入了一个时间(毫秒)给测试方法,
如果测试方法在制定的时间之内没有运行完,则测试也失败
Junit3
需要继承一些类,比如TestCase
测试方法命名必须以小写的test开始
在setUp()方法中,主要是实现一些在测试工作前的资源及环境设置等的初始化设置;而针对方法的测试用例中,需要用户自己编写,一般是以“test+方法名”;
tearDown()在每个测试方法之后运行,用来撤消其初始化的测试环境。
执行当前所有的test case
import junit.framework.Test;
import junit.framework.TestSuite;
import android.test.suitebuilder.TestSuiteBuilder;
public class AllTests2 extends TestSuite{
public static Test suite() {
return new TestSuiteBuilder(AllTests2.class).includeAllPackagesUnderHere().build();
}
}
被测函数
public class SampleCaculator {
public int add(int augend , int addend) {
return augend + addend ;
}
public int subtration(int minuend , int subtrahend) {
return minuend - subtrahend;
}
}
顺序执行Junit测试case
exapmle1:
test suite:
import junit.framework.TestSuite;
public class AllTests3 extends TestSuite{
public static void main(String[] args) {
junit.textui.TestRunner.run(suite());
}
public static TestSuite suite() {
TestSuite suite= new TestSuite("Framework Tests");
suite.addTest(test.AllTests.suite());
suite.addTest(test.XMLTest5.suite());
return suite;
}
}
example2:
import junit.framework.Test;
import junit.framework.TestSuite;
public class AllTests extends TestSuite{
public static Test suite() {
TestSuite suite = new TestSuite("TestSuite Test");
suite.addTestSuite(XMLTest.class);
suite.addTestSuite(XMLTest2.class);
return suite;
}
}
测试的 test case
test case1:
import junit.framework.Assert;
import junit.framework.TestCase;
public class XMLTest2 extends TestCase {
protected int i3 = 3;
public void setUp(){
i3 = 5;
}
public void testValue(){
Assert.assertEquals(i3, 5);
}
public void tearDown(){
i3=0;
}
}
test case2:
import junit.framework.TestCase;
import junit.framework.TestSuite;
public class XMLTest5 extends TestCase {
private int fValue1;
private int fValue2;
private int unused;
//@Override
protected void setUp() {
fValue1= 2;
fValue2= 3;
}
public static TestSuite suite() {
return new TestSuite(XMLTest5.class);
}
public void testAdd() {
double result= fValue1 + fValue2;
// forced failure result == 5
assertTrue(result != 6);
}
//@Test(expected=Exception.class)
public void testDivideByZero() throws Exception{
int zero= 0;
int result = zero/8;
//int result= 8/zero;
unused= result; // avoid warning for not using result
assertSame(unused, result);
}
public void testEquals() {
assertEquals(12, 12);
assertEquals(12L, 12L);
assertEquals(new Long(12), new Long(12));
}
}
test case3:
顺序执行当前suitexia的所有测试
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
public class XMLTest6 extends TestCase {
private static int fValue1;
private static int fValue2;
private static int unused;
//@Override
protected void setUp() {
fValue1= 2;
fValue2= 3;
}
public static TestSuite testSuite() throws Exception {
TestSuite suite= new TestSuite("Test execute according list");
suite.addTest((junit.framework.Test) testDivideByZero());
suite.addTest((junit.framework.Test) testEquals());
suite.addTest((junit.framework.Test) testAdd());
return suite;
}
public static Test testAdd() {
double result= fValue1 + fValue2;
// forced failure result == 5
assertTrue(result != 6);
System.out.println("Test testAdd()");
return null;
}
//@Test(expected=Exception.class)
public static Test testDivideByZero() throws Exception{
int zero= 0;
int result = zero/8;
//int result= 8/zero;
unused= result; // avoid warning for not using result
assertSame(unused, result);
System.out.println("Test testDivideByZero()");
return null;
}
public static Test testEquals() {
assertEquals(12, 12);
assertEquals(12L, 12L);
assertEquals(new Long(12), new Long(12));
System.out.println("Test testEquals()");
return null;
}
}
Android and JUnit
JUnit in Andriod :
只有junit3被支持,
配置测试:
Android测试类需要继承android.test.AndroidTestCase
配置AndroidManifest.xml文件
1) <uses-libraryandroid:name="android.test.runner" /> 说明:与<activity>位置同级
2) <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.testandriod" android:label="Tests for My App" />
说明:与<application>标签同级,targetPackage属性与上面mainfest的package属性内容相同即可 -->
AndroidManifest.xml 配置
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.testandriod"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<uses-library android:name="android.test.runner" />
<activity android:name=".JunitTestActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.example.testandriod.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.testandriod" android:label="Tests for My App" />
</manifest>
主函数
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
测试test case
import junit.framework.Assert;
import com.example.testandriod.MainActivity;
import com.example.testandriod.R;
import android.test.ActivityInstrumentationTestCase2;
import android.widget.TextView;
public class XMLTest4 extends ActivityInstrumentationTestCase2<MainActivity> {
private TextView result;
public XMLTest4() {
super("test", MainActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
MainActivity mainActivity = getActivity();
result = (TextView) mainActivity.findViewById(R.id.action_settings);
}
public void testResult(){
Assert.assertNull(result);
}
}
www.junit.org
http://developer.android.com/sdk/index.html
http://tech.it168.com/a2010/1027/1118/000001118903_all.shtml
http://developer.samsung.com/android/technical-docs/Basics-of-JUnit-in-Android
http://hatsukiakio.blogspot.hk/2009/05/android-15-junit.html
http://my.oschina.net/liux/blog/52469
相关推荐
文学翻译的文化传递、语言风格保持与读者接受度提升
,,Phase_Shift_T:基于MATLAB Simulink的移相变压器仿真模型,可实现-25°、-15°……25°的移相。 变压器副边实现36脉波不控整流,变压器网侧电压、阈侧电压以及移相角度可直接设置。 仿真条件:MATLAB Simulink R2015b ,核心关键词: 1. 移相变压器仿真模型 2. MATLAB Simulink 3. 移相 4. 36脉波不控整流 5. 网侧电压 6. 阈侧电压 7. 设置 8. MATLAB Simulink R2015b,MATLAB Simulink中实现宽范围移相与多脉波整流的变压器仿真模型
管理员主要负责填充图书和其类别信息,并对已填充的数据进行维护,包括修改与删除,管理员也需要审核老师注册信息,发布公告信息,管理自助租房信息等。用户信息管理页面,此页面提供给管理员的功能有:用户信息的查询管理,可以删除用户信息、修改用户信息、新增用户信息。商品分类管理页面,此页面提供给管理员的功能有:查看已发布的商品分类数据,修改商品分类,商品分类作废,即可删除。商品信息管理页面,此页面提供给管理员的功能有:根据商品名称进行条件查询,还可以对商品数据进行新增、修改、查询操作等等。商品资讯管理页面,此页面提供给管理员的功能有:查看已发布的商品资讯数据,修改商品资讯,商品资讯作废,即可删除。2 相关技术 3 2.1 SSM框架介绍 3 2.2 B/S结构介绍 3 2.3 Mysql数据库介绍 4 3 系统分析 6 3.1 系统可行性分析 6 3.1.1 技术可行性分析 6 3.1.2 经济可行性分析 6 3.1.3 运行可行性分析 6 3.2 系统性能分析 7 3.2.1 易用性指标 7 3.2.2 可扩展性指标 7 3.2.3 健壮性指标 7 3.2.4 安全性指标 8 3.3 系统流程分
当前资源包含初中高级闯关习题
,,欧姆龙PLC螺丝机程序(含触摸屏程序) 此程序已经实际设备上批量应用,程序成熟可靠,借鉴价值高,程序有注释、非常适合用来欧姆龙plc新手学习,包括欧姆龙plc程序和威纶触摸屏程序。 是新手入门级欧姆龙PLC电气爱好从业人员借鉴和参考经典案列。 ,欧姆龙PLC; 螺丝机程序; 触摸屏程序; 程序成熟可靠; 注释详尽; 新手学习; 经典案例。,欧姆龙PLC螺丝机程序详解:成熟可靠的新手学习经典案例
,,c# mqtt高性能服务器端源代码。 你还在使用第三方服务软件吗?不如试试这个开发框架,助你一臂之力,无限制,无全开源,无版权约束,全是自主开发。 开源框架包括服务器和客户端,支持mqtt3.0及5.0。 可嵌入到自己的服务系统及软件客户端中,不受第三方约束。 你要问我稳定性如何?我能回答的是已经运行了三年有余无任何问题。 如果你要问能接入多少终端,我可以明确回答,不敢往多的说,单节点支持100万并发量无压力。 这是一个关于C# MQTT高性能服务器端源代码的描述。如果我重新表述一下,可以这样说:你是否还在使用第三方服务软件?为什么不尝试一下这个开发框架呢?它可以为你提供强大的支持,没有任何限制,完全开源,没有版权约束,全部都是自主开发的。 这个开源框架包括服务器和客户端,支持MQTT 3.0和5.0协议。你可以将它嵌入到自己的服务系统和软件客户端中,不受第三方的限制。 你可能会问它的稳定性如何。我可以很自信地告诉你,它已经运行了三年多,没有出现任何问题。 如果你想知道它可以接入多少终端,我可以明确地回答,单节点支持100万并发连接,毫不费力。 从这段话中,我们可以提取出以
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
,,matlab程序,复现,基于改进粒子群算法的混合储能系统容量优化,关键词,超级电容,混合储能,粒子群算法。 拿之前问清楚 可以运行看结果,出不 不 ,MATLAB程序; 复现; 改进粒子群算法; 混合储能系统容量优化; 超级电容; 粒子群算法。,MATLAB复现:混合储能系统优化策略研究,基于改进粒子群算法的超级电容容量配置
,,k—medoids 聚类方法的MATLAB源代码,导入数据部分和画图部分已经用中文给出了注释。 这儿选取一个对象叫做mediod来代替上面的中心 的作用,这样的一个medoid就标识了这个类。 ,k-medoids聚类方法; MATLAB源代码; 导入数据部分; 画图部分; 对象; medoid; 类标识。,基于K-Medoids聚类方法的MATLAB源代码及中文注释解析
自驾游中如何保护自然环境
qt 一个基于Qt Creator(qt,C++)实现中国象棋人机对战.
项目资源包含:可运行源码+sql文件+文档; python3.7+django+mysql5.7+vue 适用人群:学习不同技术领域的小白或进阶学习者;可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 项目具有较高的学习借鉴价值,也可拿来修改、二次开发。 有任何使用上的问题,欢迎随时与博主沟通,博主看到后会第一时间及时解答。 系统是一个很好的项目,结合了后端服务(django)和前端用户界面(Vue.js)技术,实现了前后端分离。 当人们打开系统的网址后,首先看到的就是首页界面。在这里,人们能够看到系统的导航条,通过导航条导航进入各功能展示页面进行操作。在个人中心页面可以输入个人信息进行更新信息操作,还可以对我的订单、我的地址和我的收藏进行详细操作。 管理员进入主页面,主要功能包括对首页、个人中心、用户管理、商品类别管理、热卖商品管理、投诉建议、系统管理、订单管理等进行操作。用户进入系统后台,主要功能包括对个人中心和我的收藏管理进行操作。
漫画作品与节日庆典结合
自驾游中的手机APP推荐
,,该套程序是电芯上料机,空料仓和满料仓都是步进电机,搬运模组是松下A6脉冲控制伺服电机,该套程序是已经在量产程序,图四是上料机设备全局图,标准程序框架,其他设备也可套用。 ,电芯上料机; 步进电机; 满料仓; 松下A6脉冲控制伺服电机; 标准程序框架; 设备全局图; 其他设备通用,电芯上料机程序:松下A6伺服电机驱动的步进式料仓管理系统
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
,,Matlab代码-基于拉格朗日电力系统参数辨识 对电力系统中存在多个不良参数进行辨识,以IEEE14节点系统进行仿真验证。 ,基于拉格朗日; 电力系统参数辨识; 不良参数辨识; IEEE14节点系统仿真验证。,基于拉格朗日算法的电力系统多参数辨识及IEEE14节点仿真验证
它利用图像预处理、车牌字符分割、字符识别等相关处理技术,对小型车辆的蓝底白字车牌进行车牌号识别。车牌定位是利用HSV色彩定位法,这种方法可大大缩短后续处理时间,字符分割采用阈值限定分割,字符识别则采用模板匹配法。在拍摄角度不过度倾斜情况下识别精度较高,白天照片预处理、分割效果较晚间好。
该文档围绕 DeepSeek 和 AIGC 展开,介绍了 DeepSeek-R1 模型的技术特性、AIGC 的概念、应用及相关工具的选择。 适用人群:对人工智能、AIGC 技术感兴趣的初学者,想要了解行业动态的专业人士,以及寻求提升工作效率、探索创新应用的企业和个人。包括但不限于 AI 从业者、内容创作者、教育工作者、科研人员、电商从业者、传媒工作者、游戏开发者等。 使用场景:在科研领域,DeepSeek-R1 可用于复杂问题求解、实验设计和论文撰写;教育场景中,能辅助知识理解、解答问题,还可作为教学工具锻炼学生逻辑思维。内容创作方面,AIGC 工具能生成文本、图像、音频和视频,满足不同创作需求。电商行业利用 AIGC 制作商品 3D 模型、虚拟主播,提升购物体验和直播带货效率。新闻传媒行业借助 AIGC 提高采编效率、打造 AI 主播。影视和游戏行业,AIGC 可用于剧本创作、角色生成、场景拓展等。
,,MATLAB用yalmip+cplex解决电动汽车有序充放电问题,目标函数为总负荷峰谷差最小,代码可运行且有注释。 ,关键词: 1. MATLAB 2. yalmip 3. cplex 4. 电动汽车有序充放电 5. 目标函数 6. 总负荷峰谷差最小 7. 代码可运行 8. 注释,MATLAB中YALMIP+CPLEX实现电动汽车有序充放电优化,降低负荷峰谷差