assert

How to use test suite in NUnit 3

江枫思渺然 提交于 2020-02-24 07:50:30
问题 I'm using NUnit 3 and having problems using test suites. I saw this Documentation page, but it's for the old version and I can't find anything in the new documentation. This does not work, because [Suite] is invalid. [Suite] public static IEnumerable Suite { get { ArrayList suite = new ArrayList(); suite.Add(typeof(OneTestCase)); suite.Add(typeof(AssemblyTests)); suite.Add(typeof(NoNamespaceTestFixture)); return suite; } 回答1: The SuiteAttribute has been removed from NUnit 3 (see the

assert断言

不打扰是莪最后的温柔 提交于 2020-02-22 05:18:40
https://www.cnblogs.com/ggzss/archive/2011/08/18/2145017.html assert是一个宏定义,其作用是如果它的条件返回错误,则终止程序执行,原型定义: 1 #include <assert.h> 2 void assert( int expression ); assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序清单badptr.c: 1 #include <stdio.h> 2 #include <assert.h> 3 #include <stdlib.h> 4 int main( void ) 5 { 6 FILE *fp; 7 fp = fopen( "test.txt", "w" );//以可写的方式打开一个文件,如果不存在就创建一个同名文件 8 assert( fp ); //所以这里不会出错 fclose( fp ); 9 fp = fopen( "noexitfile.txt", "r" );//以只读的方式打开一个文件,如果不存在就打开文件失败 10 assert( fp ); //所以这里出错 11 fclose( fp ); //程序永远都执行不到这里来 12 return 0;

动态规划和递归算法求解斐波那契数列的效率对比

五迷三道 提交于 2020-02-16 12:05:52
动态规划有效的解决了递归算法的效率低下的问题,它剔除了递归中的重叠的子问题,对每个子问题只求解一次。 斐波那契数列格式为:1、1、2、3、5、8、13、21、34、......, 递归(状态转移)函数为 f[n]=f[n-1]+f[n-2] 采用递归求解: #采用递归求解 def f_recu(n): assert isinstance(n,int),'必须输入一个整数' assert n>=1,'不能小于1' if n==1 or n==2: return 1 return f_recu(n-1) + f_recu(n-2) #测试,n=40 计算时间 %time f_recu(40) 输出: Wall time: 48.4 s 102334155 采用动态规划求解: #采用动态规划方法求解 def f_dyna(n): assert isinstance(n,int),'必须输入一个整数' assert n>=1,'不能小于1' if n == 1 or n==2: return 1 else: pre_n_2 = 1 pre_n_1 = 1 for i in range(3,n+1): target_n = pre_n_2 + pre_n_1 pre_n_1 = pre_n_2 pre_n_2 = target_n return target_n #测试,n=40 计算时间

[Python]python中assert和isinstance的用法

故事扮演 提交于 2020-02-14 17:30:00
assert语句是一种插入调试断点到程序的一种便捷的方式。 assert 3 == 3 assert 1 == True assert (4 == 4) print('-----------') assert (3 == 4) ''' 抛出AssertionError异常,后面程序不执行 ''' print('-----------') isinstance函数说明: 当我们定义一个class的时候,我们实际上就定义了一种数据类型。我们定义的数据类型和Python自带的数据类型,比如str、list、dict没什么两样: 判断一个变量是否是某个类型可以用isinstance()判断: class Student(): def __init__(self, name, score): self.name = name self.score = score a = '10' b = 3 c = [1, 2, 3] d = (1, 2, 3) f = Student('Eden', 99.9) print(isinstance(a, str)) # True print(isinstance(b, int)) # True print(isinstance(c, list)) # True print(isinstance(d, tuple)) # True print

专家系统 - CLIPS语言学习(1)fact & rule

拜拜、爱过 提交于 2020-02-14 08:41:55
什么是专家系统? 专家系统(Expert System) 是一种在特定领域内具有专家水平解决问题能力的程序系统,属于人工智能的一个发展分支。它能够有效地运用专家多年积累的有效经验和专门知识,通过模拟专家的思维过程,解决需要专家才能解决的问题。 专家系统的基本结构如图所示,其中箭头方向为数据流动的方向。专家系统通常由人机交互界面、知识库、推理机、解释器、综合数据库、知识获取等6个部分构成。(来自:MBA智库) 什么是CLIPS? CLIPS是用于编写专家系统的一种编程语言,或称专家系统工具。CLIPS shell(shell表示该编程环境中代表分析、推理的部分)包含了fact-lists(事实列表)、knowledge-base(知识库)、inference engine(推理机)。 官方文档表示如下:(WPS开护眼,绿光闪耀宁的眼) 本人计划开发一个基于CLIPS的启发式推理的专家系统,数据处理和UI界面将在后期使用Python编写代码实现。在现阶段主要完成逻辑模块,选择CLIPS作为专家系统编程语言,配置相应的编码环境,学习CLIPS6.4的官方文档,并同步做记录于此。 编程环境:CLIPS IDE 害,说是IDE,其实就是界面好看一丢丢的CLIPSDOS,命令提示符为"CLIPS>"。编程过程中没有match快捷方式以及错误提示,不过这样“返璞归真”的编程方式

Java Junit单元测试

*爱你&永不变心* 提交于 2020-02-13 01:47:03
Junit单元测试分类 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。 白盒测试:需要写代码的。关注程序具体的执行流程。 Junit使用:白盒测试 步骤 定义一个测试类(测试用例) 建议: 测试类名:被测试的类名Test(如 CalculatorTest) 包名:xxx.xxx.xx.test (如 view.study.demo43.test ) 定义测试方法:可以独立运行 建议: 方法名:test测试的方法名 (如testAdd) 返回值:void 参数列表:空参 给方法加@Test 导入junit依赖环境 举例 创建一个加减法类,我们来测试这个类: package view.study.demo44; public class Calculator { /** * 加法 */ public static int add(int a, int b) { return a + b; } /** * 减法 */ public static int sub(int a, int b) { return a - b; } } 传统的测试方式: package view.study.demo44; public class CalculatorTest { public static void main(String[] args) { int add =

自古美人都是妖i 提交于 2020-02-11 23:33:40
堆 堆和优先队列 Heap and Priority Queue 普通队列:先进先出,后进后出 优先队列:出队顺序和入队顺序无关;和优先级相关 使用数组实现优先队列时间复杂度:O(n^2),使用堆的时间复杂度:O(nlgn) 最大堆是一颗完全的二叉树,并且任何一个节点都不大于它的父亲节点 所以我们可以使用数组存储二叉堆 二叉树相关概念 构造一个堆,并向里面添加和删除元素 package bobo.algo; import java.util.*; import java.lang.*; // 在堆的有关操作中,需要比较堆中元素的大小,所以Item需要extends Comparable public class MaxHeap<Item extends Comparable> { protected Item[] data; protected int count; protected int capacity; // 构造函数, 构造一个空堆, 可容纳capacity个元素 public MaxHeap(int capacity){ data = (Item[])new Comparable[capacity+1]; count = 0; this.capacity = capacity; } // 构造函数, 通过一个给定数组创建一个最大堆 // 该构造堆的过程,

[AFCTF2018]花开藏宝地 CRT

雨燕双飞 提交于 2020-02-10 16:04:03
中国剩余定理 有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何? 使用中国剩余定理来求解上面的“物不知数”问题,便可以理解《孙子歌诀》中的数字含义。这里的线性同余方程组是: 三个模数 m 1= 3, m 2= 5, m 3= 7 的乘积是 M= 105,对应的 M 1= 35, M 2= 21, M 3= 15. 而可以计算出相应的数论倒数: t 1= 2, t 2= 1, t 3= 1. 所以《孙子歌诀》中的 70、21 和 15 其实是这个“物不知数”问题的基础解: 而将原方程组中的余数相应地乘到这三个基础解上,再加起来,其和就是原方程组的解: 这个和是 233,实际上原方程组的通解公式为: 《孙子算经》中实际上给出了最小正整数解,也就是 时的解: 。 此上为维基百科解释。 因与官方解不同 贴出此题官方write up a1

Python3 assert(断言)

微笑、不失礼 提交于 2020-02-10 00:27:20
Python assert(断言)用于判断一个表达式,在表达式条件为 false 的时候触发异常。 语法格式如下: assert expression 等价于: if not expression: raise AssertionError assert 后面也可以紧跟参数: assert expression [, arguments] 等价于: if not expression: raise AssertionError(arguments) 以下为 assert 使用实例: >>> assert True # 条件为 true 正常执行 >>> assert False # 条件为 false 触发异常 Traceback (most recent call last): File "<stdin>", line 1, in <module> AssertionError >>> assert 1==1 # 条件为 true 正常执行 >>> assert 1==2 # 条件为 false 触发异常 Traceback (most recent call last): File "<stdin>", line 1, in <module> AssertionError >>> assert 1==2, '1 不等于 2' Traceback (most recent

几种常见的排序算法

霸气de小男生 提交于 2020-02-09 21:58:10
一.选择排序   在待排序的一组数据中,选出最小(最大)的一个数与第一个位置的数交换,然后在剩下的数中,再找最小(最大)的数与第二个位置的数交换位置,依次类推,直到第N-1个元素与第N个元素交换位置,选择排序结束。 import edu.princeton.cs.algs4.StdIn; import edu.princeton.cs.algs4.StdOut; import java.util.Comparator; public class Selection { private Selection() { } //排序 public static void sort(Comparable[] a) { int n = a.length; for (int i = 0; i < n; i++) { int min = i; for (int j = i+1; j < n; j++) { if (less(a[j], a[min])) min = j; } exch(a, i, min); assert isSorted(a, 0, i); } assert isSorted(a); } //使用比较器按升序重新排列数组 public static void sort(Object[] a, Comparator comparator) { int n = a.length;