小编Joe*_*oel的帖子

如何在通过autotools构建的项目中使用Google Test?

似乎有一些答案是那种,有点理智,但我不知道如何执行.我还没有找到一个全面的答案.

第一个问题

Google Test不应该是已安装的库,它应该与项目一起构建.(请参阅常见问题解答.)据我所知,这意味着Google Test库是我单元测试的依赖项,应该在我第一次在项目中运行"make check"时构建.这应该在某个目录中构建Google Test库.我不知道该怎么做.它提到了一些被弃用的autotools脚本,我不确定他们在谈论什么,或者如何正确地指出我的构建.

第二个问题

假设构建成功,我如何编写使用我的本地编译版Google Test运行测试的测试?我假设我在test目录中放了一堆Makefile.am命令.但他们是什么?什么是使用Google Test的单元测试的例子?

c++ automated-tests unit-testing autotools googletest

20
推荐指数
1
解决办法
6373
查看次数

std :: memcpy是否确定其目的地?

这是代码:

unsigned int a;            // a is indeterminate
unsigned long long b = 1;  // b is initialized to 1
std::memcpy(&a, &b, sizeof(unsigned int));
unsigned int c = a;        // Is this not undefined behavior? (Implementation-defined behavior?)
Run Code Online (Sandbox Code Playgroud)

a该标准是否保证在我们进行初始化的地方是一个确定的值cCppreference说

void* memcpy( void* dest, const void* src, std::size_t count );

count字节从指向的对象复制到src指向的对象dest。这两个对象都重新解释为的数组unsigned char

但是我看不到cppreference中的任何地方,如果说这样不确定的值被“复制到”,它将变成确定的。

从标准看来,这类似于:

unsigned int a;            // a is indeterminate
unsigned long long b = 1;  // b …
Run Code Online (Sandbox Code Playgroud)

c++ memcpy language-lawyer c++17

10
推荐指数
1
解决办法
312
查看次数

从更高级别提出异常,la警告

在模块警告(https://docs.python.org/3.5/library/warnings.html)中,可以发出似乎来自堆栈中某个位置的警告:

warnings.warn('This is a test', stacklevel=2)
Run Code Online (Sandbox Code Playgroud)

是否存在引发错误的等价物?我知道我可以使用备用回溯引发错误,但我无法在模块中创建该回溯,因为它需要来自之前的版本.我想象的是:

tb = magic_create_traceback_right_here()
raise ValueError('This is a test').with_traceback(tb.tb_next)
Run Code Online (Sandbox Code Playgroud)

原因是我正在开发一个具有一个函数的模块,module.check_raise我想引发一个看起来源于函数调用位置的错误.如果我在module.check_raise函数内引发错误,它似乎来自内部module.check_raise,这是不希望的.

此外,我尝试了一些技巧,比如提出一个虚拟异常,捕获它,然后传递回溯,但不知怎的,tb_next变成了None.我没有想法.

编辑:

我想要这个最小例子的输出(称为tb2.py):

import check_raise

check_raise.raise_if_string_is_true('True')
Run Code Online (Sandbox Code Playgroud)

只有这个:

Traceback (most recent call last):
  File "tb2.py", line 10, in <module>
    check_raise.raise_if_string_is_true(string)
RuntimeError: An exception was raised.
Run Code Online (Sandbox Code Playgroud)

python python-3.x python-3.5

9
推荐指数
1
解决办法
2518
查看次数

使用set_fig(宽度/高度)调整matplotlib图形的大小不起作用

由于某种原因,这段代码创建的图形只是标准尺寸:它不会改变高度或宽度(我选择宽度和高度是荒谬的,以清楚地说明问题):

import matplotlib.pyplot as plt

fig = plt.figure()
fig.set_figwidth(30)
fig.set_figheight(1)

print('Width: {}'.format(fig.get_figwidth()))

plt.show()
Run Code Online (Sandbox Code Playgroud)

我正在运行OSX 10.10.4,Python 3.4.3,Matplotlib 1.4.3.(通过Macports安装.)任何想法?我错过了什么?

python matplotlib

3
推荐指数
2
解决办法
8302
查看次数