Antkillerfarm Hacking V7.5

language » Matlab, C++ Test framework

2022-11-09 :: 5727 Words

Matlab

在MATLAB软件诞生之前,大约1965年,计算机只能生成和输出二维图像,对于L-型膜结构(L-Shaped Membrane)只能生成下图左侧的二维平面效果。直到1990年,MATLAB 3.5发布,3.5版本利用了隐藏线算法(Hidden Line Algorithm),可以实现黑白网格的三维立体图像的生成。1993年,MATLAB 4进一步实现了彩色化。1995年,MATLAB 4.2利用了网格光滑化算法(Crude Shaping Algorithm)将L型网格进一步光滑处理。1995年,MATLAB 5实现了生成完全光滑和打光效果。

而Mathworks公司也将他们引以为傲的进步作为了MATLAB软件的图标!这个图标反映的正是Mathworks技术的不断迭代升级。

至于为啥是L-Shaped Membrane而不是其他呢?因为这是Mathworks创始人之一Moler的博士课题

https://www.zhihu.com/answer/1294927798

如果中国重新开发像MATLAB、solidworks这样的软件大概需要多久?


https://mp.weixin.qq.com/s/0SNlsZUO-i-wzzfSXqLF_g

Mathemetica35周年!从天才物理学家到“自大狂”,创始人Wolfram的传奇经历

参考

https://zhuanlan.zhihu.com/p/30905298

XML和MATLAB交互的基本操作

https://mp.weixin.qq.com/s/QkICCbTp53lWOyeZx63-sw

后MATLAB时代的七种开源替代,一种堪称完美!

https://mp.weixin.qq.com/s/vV8kFF7e1uxjMR48_uRcSw

MATLAB动画没有密秘

https://mp.weixin.qq.com/s/L6GP0LiCQX0Z2lps3Y0ekQ

Matlab简史

https://www.zhihu.com/answer/1513267624

1994年,Matlab发现著名的Intel CPU浮点运算bug

GNU Octave

GNU Octave是Matlab的一个开源实现。它拥有和后者兼容的语法,类似的IDE,并实现了大部分的基础库。

官网:

https://gnu.org/software/octave/

安装方法:

sudo apt install octave

spyder

spyder是一个Python的IDE,提供了和Matlab类似的数据可视化界面。

安装:

sudo apt install spyder

GeoGebra

GeoGebra是一个结合“几何”、“代数”与“微积分”的动态数学软件,由佛罗里达州亚特兰大学的数学教授Markus Hohenwarter所设计。

官网:

https://www.geogebra.org/

GeoGebra官网包含了很多网友分享的几何绘图,所以常用图形就不要自己画了,找个现成的改改更合适。

安装包下载:

https://download.geogebra.org/installers/6.0

Maxima

微积分的数值解很多软件都能计算,但解析解就不行了。Maxima就是这样一款Computer Algebra System的软件。

官网:

http://maxima.sourceforge.net/

C++ Test framework

boost.test

boost.test是一个C++的单元测试框架。

代码示例:

https://github.com/antkillerfarm/antkillerfarm_crazy/tree/master/cpp/boost_test

要点:

  • 测试代码无须main函数。

  • 编译:-DBOOST_TEST_DYN_LINK

  • 链接:-lboost_unit_test_framework

打印所有的log:

unit_test --log_level=all

参考:

https://www.ibm.com/developerworks/cn/aix/library/au-ctools1_boost/

了解Boost单元测试框架

https://www.ibm.com/developerworks/cn/aix/library/au-ctools2_cppunit/index.html

了解CppUnit

https://www.ibm.com/developerworks/cn/aix/library/au-ctools3_ccptest/

了解CppTest。上面这3篇算是比较权威的C++单元测试工具的教程了,作者都是Arpan Sen。

https://my.oschina.net/vaero/blog/227528

C++单元测试:boost.test

https://remonstrate.wordpress.com/2011/07/06/boost-%e7%9a%84-unit-test/

boost的unit test

googletest

安装:

sudo apt install libgtest-dev

代码:

https://github.com/google/googletest

gtest_filter是一个很有用的选项。

示例:

./foo_test --gtest_filter=FooTest*.*-FooTest.Bar:FooTest2.Bar

运行所有“测试案例名称(testcase_name)”为FooTest的案例,但是除了FooTest.Bar和FooTest2.Bar。

-表示去除,:表示并列。

TEST(FooTest, DISABLED_DoesAbc) { ... }

去除测试用例。

参考:

https://www.ibm.com/developerworks/cn/aix/library/au-googletestingframework.html

Google C++ Testing Framework简介

https://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html

玩转Google开源C++单元测试框架Google Test系列(gtest)

gmock

gmock是google公司推出的一款开源的白盒测试工具。

测试一个模块的时候,可能涉及到和其他模块交互,可以将模块之间的接口mock起来,模拟交互过程。

比如要测试A模块,必过A模块需要调用B模块的函数。如果B模块还没有实现,此时,就可以用gmock将B模块的某些接口打桩。这样就可以让A模块的测试继续进行下去。

gmock目前是googletest的一部分,一般也与后者配合使用。

https://zhuanlan.zhihu.com/p/101906555

googletest-gmock使用示例

CTest

CTest是CMake集成的一个测试工具。

参考:

https://www.cnblogs.com/457220157-FTD/p/4139149.html

CTest

doctest

官网:

https://github.com/onqtam/doctest

Latex+

mathcha

mathcha是一个可视化的Latex编辑器,和其他同类产品相比,它主要聚焦公式和图表功能,其中后者基于tikz。

官网:

https://www.mathcha.io/

安装:

sudo snap install math-notebook

参考

https://zhuanlan.zhihu.com/p/508559139

Latex简明速查手册

https://www.zhihu.com/question/40763253

如何在Word和PowerPoint中优雅地插入Latex公式?

https://mp.weixin.qq.com/s/3RtKAT3WE8P2YIZRA2dZ3A

LaTeX的历史:图灵奖得主1977年开启的计划,引发学术圈重大变革

https://mp.weixin.qq.com/s/KMWhz5_EXWoxgmHUek6zBA

不会用latex写公式?看看这个python转latex的库(python2latex)

https://www.zhihu.com/question/65508676

怎么在LaTeX中排版Python代码?

https://mp.weixin.qq.com/s/LumDQL9VKTHWK3RkOhKFcg

1行代码搞定Latex公式编写,这个4.6M的Python小插件,堪称论文必备神器(handcalcs)

https://zhuanlan.zhihu.com/p/268332132

知乎公式编辑器的高级“玩法”

https://mp.weixin.qq.com/s/E4EECj0QQ90ElfPqOL80eg

Python编辑公式竟可以如此简单(latexify_py)

https://zhuanlan.zhihu.com/p/38178015

使用VSCode编写LaTeX

https://zhuanlan.zhihu.com/p/194831235

Knuth-Plass换行算法

https://mp.weixin.qq.com/s/kGVLsqstajyrZ_cfkFegrA

Latex数学排版简洁指南

Javascript参考资源+

https://mp.weixin.qq.com/s/0pI0F6c-BSLiGdLetQ5qNQ

彻底弄懂浏览器缓存策略

https://mp.weixin.qq.com/s/fEAfuVzfOwKjnTB-mdS5UA

用JS写一个同Excel表现的智能填充算法

https://mp.weixin.qq.com/s/D-XvKCSUCzMGcEz_xWTwqg

现代CSS进化史

https://mp.weixin.qq.com/s/IIWgNvqp0jxcD-J_CikV8w

代码变油画,精细到毛发,这个前端小姐姐只用HTML+CSS,让美术设计也惊叹

https://www.cnblogs.com/zzd0916/p/11977995.html

浏览器工作原理与实践

https://mp.weixin.qq.com/s/MwWC0doO_sp_eRkInbE0hw

今天网站都变成灰色了,这其中是怎么实现的?

https://mp.weixin.qq.com/s/VTULhAjEUNfAph-xkkUTsg

手写一个解析器

https://mp.weixin.qq.com/s/3sYrI9kxgAYLiNT-xavRLw

“秒开”浏览器实现起来有多难?

https://mp.weixin.qq.com/s/LciDtj6YmPI7WxcCQM-lIA

前端性能分析工具利器

https://mp.weixin.qq.com/s/c4saBdDZDehokU5gJ-9fPw

JavaScript与ES的25个重要知识点

https://mp.weixin.qq.com/s/HUknNfaxNULc4Yvf5ajRBA

五分钟了解互联网Web技术发展史

https://mp.weixin.qq.com/s/4YXoSrYueQFWOC8sZH8LvQ

跨平台Web Canvas渲染引擎架构的设计与思考

https://zhuanlan.zhihu.com/p/373271928

浏览器性能优化实战

C/C++参考资源=

https://zhuanlan.zhihu.com/p/23016264

这么多款STL,总有一款适合你

https://mp.weixin.qq.com/s/Hpn7KqYlBKz0JdryiozqyQ

每个开发者都应该了解的一些C++特性

https://www.cnblogs.com/wuchanming/p/3913492.html

emplace_back与push_back的区别

https://zhuanlan.zhihu.com/p/82895086

当我们谈论C++时,我们在谈论什么?

https://mp.weixin.qq.com/s/pxyTlQn4wx-N_MaWZc0oAQ

漫谈C++的各种检查

https://mp.weixin.qq.com/s/LchYGGcSbIMVGxO0Uea0RA

深入C++回调

https://blog.csdn.net/hahahacff/article/details/39504699

Java中创建对象的时候代码执行顺序(这个问题C++应该也存在)

https://blog.csdn.net/msq19895070/article/details/7910969

嵌入式程序员应知道的几个基本问题

http://dev.yesky.com/393/3007393.shtml

深入理解C++中的mutable关键字

http://blog.csdn.net/apunix/archive/2008/01/14/2043945.aspx

UNREFERENCED_PARAMETER的作用

https://mp.weixin.qq.com/s/1ELGzBkIdO1xa6LZV80raQ

C++中Future和Promise的一种简单实现

Fork me on GitHub