python 单元测试

unittest

https://docs.python.org/2/library/unittest.html

A testcase is created by subclassing unittest.TestCase. The three individual tests are defined with methods whose names start with the letters test. This naming convention informs the test runner about which methods represent tests.

The crux of each test is a call to assertEqual() to check for an expected result; assertTrue() or assertFalse() to verify a condition; or assertRaises() to verify that a specific exception gets raised. These methods are used instead of the assert statement so the test runner can accumulate all test results and produce a report.

The setUp() and tearDown() methods allow you to define instructions that will be executed before and after each test method. They are covered in more detail in the section Organizing test code.

The final block shows a simple way to run the tests. unittest.main() provides a command-line interface to the test script. When run from the command line, the above script produces an output that looks like this:

PCA – 数据降维

原数据,2维:(3,4),(6,8)

新数据,2维:(5,0), (10,0)

最终简化为一维:5, 10

从几何来理解,就是坐标轴的旋转。

这里降维的理由:所有的点实际上都是分布在y=(4/3)X这条斜线上的。

related posts:

1. http://www.iro.umontreal.ca/~pift6080/H09/documents/papers/pca_tutorial.pdf

2. https://stats.stackexchange.com/questions/90331/step-by-step-implementation-of-pca-in-r-using-lindsay-smiths-tutorial

3. http://www.cnblogs.com/pangxiaodong/archive/2011/10/15/2212786.html

 

 

git usage

1. 提交

git add .

git commit -m “your comments about this submission”

git push origin master

2. 同时开发,解决冲突

维护一个稳定的master,每个需要开发一个特征的人,都可以创建一个分支,当完成自己的分支工作后,再merge回master。可以想象的一种情况是,在某个人开发某个软件特性的时候,其他人可能在他之前完成了自己的特性的开发,并且merge回了master。那么可能出现的一种问题是:

如果两个人都对某个文件进行了修改,后提交的人咋办?

这个问题必须后提交的人手动解决这个冲突。如果直接覆盖前一个人的修改,那么可能前一个人的代码就会报错。

另一个问题是:如果后一个人修改了前一个人依赖的一个文件,并且前一个人并没有修改这个文件,那么,本次提交就会成功,本来前一个人可以正常运行的代码,就会报错。同样的,如果后一个人依赖的文件,并且在后一个人的开发过程中没有修改,而前一个人做了修改,那么,后一个人的提交可以通过,但是后一个人本来在本地可以正常运行的代码,提交以后就会报错。

所以,如果一个文件是大家都要依赖的,那么,这类文件的修改,必须由专人负责,并且每次的修改,必须要兼顾到所有依赖它的人。