小编Mic*_*ior的帖子

如何在rspec测试中包含lib目录

我lib在JRuby 1.7.4上测试我的gem包含一个目录时遇到了问题.

我想测试位于的文件 lib/vger/resources/account_manager.rb

我的spec文件在 spec/vger/resources/account_manager_spec.rb

require 'spec_helper'

describe Vger::Resources::AccountManager do     
    .
    .
    end 
end
Run Code Online (Sandbox Code Playgroud)

我试图包含我想要测试的文件 spec_helper.rb

require 'rubygems'
require 'bundler/setup'
require 'vger/resources/account_manager'
require 'vger'

RSpec.configure do |config|
  # some (optional) config here
end
Run Code Online (Sandbox Code Playgroud)

在通过命令运行测试时,rspec spec/vger/resources/account_manager_spec.rb我收到此错误:

NameError: uninitialized constant Vger::Resources
    const_missing at org/jruby/RubyModule.java:2631
Run Code Online (Sandbox Code Playgroud)

我似乎想要测试的文件没有加载.请告诉我哪里出错了,我应该在哪里纠正.

ruby testing rspec rspec-rails

28
推荐指数
4
解决办法
3万
查看次数

神经网络中的骨干是什么意思?

我对神经网络中“主干”的含义感到困惑,尤其是在DeepLabv3+ 论文中。我做了一些研究,发现骨干可能意味着

网络的特征提取部分

DeepLabv3+ 以Xception和 ResNet-101 作为其主干。但是,我对DeepLabv3+的整个结构并不熟悉,主干指的是哪部分,哪些部分保持不变?

主干的一般描述或定义也将受到赞赏。

neural-network deep-learning deeplab

18
推荐指数
4
解决办法
1万
查看次数

在C宏中使用和返回输出

我正在尝试检测一些代码来捕获和打印错误消息.目前我正在使用像这样的宏:

#define my_function(x) \
  switch(function(x)) { \
    case ERROR: \
      fprintf(stderr, "Error!\n"); \
      break; \
  }
Run Code Online (Sandbox Code Playgroud)

通常,我从不捕获函数输出,这很好.但我发现了几个我需要返回值的情况function().我试过类似下面的内容,但这会产生语法错误.

#define my_function(x) \
  do { \
    int __err = function(x); \
    switch(__err) { \
      case ERROR: \
        fprintf(stderr, "Error!\n"); \
        break; \
    } \
    __err; \
  } while(0)
Run Code Online (Sandbox Code Playgroud)

我可以声明一个全局变量来保存函数的返回值,但这看起来很难看,我的程序是多线程的,所以这可能会导致问题.我希望那里有更好的解决方案.

c return-value c-preprocessor

13
推荐指数
3
解决办法
5万
查看次数

转换为void不会删除warn_unused_result错误

在测试中,我丢弃了任何东西,stderr因为它使测试用例的输出变得混乱.我正在使用以下代码:

freopen("/dev/null", "w", stderr);
Run Code Online (Sandbox Code Playgroud)

编译时-Wall -Werror,我得到错误

error: ignoring return value of ‘freopen’, declared with attribute warn_unused_result
Run Code Online (Sandbox Code Playgroud)

这是预料之中的.但是,通常的铸造解决方案void似乎不起作用.也就是说,将代码更改为

(void) freopen("/dev/null", "w", stderr);
Run Code Online (Sandbox Code Playgroud)

仍然会产生相同的警告.我不在乎这个函数是否失败,因为最坏的情况是一些额外的输出.我可以解决这个问题吗?

编辑:我知道我可以引入一个额外的不必要的变量.我真的很想知道为什么无法转换为无效.

更新: 我决定采用这个:

FILE *null = fopen("/dev/null", "w");
if (null) { fclose(stderr); stderr = null; }
Run Code Online (Sandbox Code Playgroud)

在freopen仔细阅读文档之后,我看到如果打开/dev/null失败,stderr仍然会被销毁.这解决了这个问题.

c gcc gcc-warning

12
推荐指数
2
解决办法
5430
查看次数

C99中带有0个参数的变量宏

我有一些调试代码如下所示:

#define STRINGIFY(x) #x
#define TOSTRING(x) STRINGIFY(x)
#define AT __FILE__ ":" TOSTRING(__LINE__)
void __my_error(const char*loc, const char *fmt, ...);
#define my_error(fmt, ...) __my_error(AT, fmt, ##__VA_ARGS__)
Run Code Online (Sandbox Code Playgroud)

使用最后一个宏,因此我可以将位置插入到调试输出中,以确定错误发生的位置.但是,当我调用这样的函数时:

my_error("Uh oh!");
Run Code Online (Sandbox Code Playgroud)

我喜欢我的代码是C99,所以我觉得这个时候编译,我得到以下错误:

error: ISO C99 requires rest arguments to be used
Run Code Online (Sandbox Code Playgroud)

我知道我可以通过改变呼叫来解决这个问题

my_error("Uh oh!", NULL);
Run Code Online (Sandbox Code Playgroud)

但有什么方法可以让这个看起来不那么难看?谢谢!

macros c99 variadic

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

如何强制subversion提交过时的文件?

我想用前一版本"覆盖"我的最后一次提交.我试图检查版本631,做一些更改,并将其作为版本633提交.但是svn不同意,因为版本632存在.

最简单的方法是什么?这是一个多文件提交.我不想手动制作它.

svn version-control commit

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

Hadoop组合器排序阶段

使用指定的组合器运行MapReduce作业时,组合器是否在排序阶段运行?我知道组合器在每个溢出的mapper输出上运行,但似乎在合并排序的中间步骤中运行也是有益的.我在这里假设在排序的某些阶段,某些等效键的映射器输出在某些时候保存在内存中.

如果目前没有这种情况,是否有特殊原因,或者只是尚未实施的内容?

提前致谢!

hadoop mapreduce combiners

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

Redux Toolkit:错误:“reducer”是必需参数,并且必须是可以传递给combineReducers的函数或函数对象

使用这段代码,我没有收到任何错误。

import {combineReducers, configureStore} from '@reduxjs/toolkit';
import {menuReducer as menu} from './menu';
import {cartReducer as cart} from './shoppingCart';
import {optionsReducer as options} from './optionsItem';
import {homeReducer as home} from './home';
import {rewardReducer as reward} from './reward';
import {ordersReducer as orders} from './orders';
import {authReducer as auth} from './auth';
import giftCardReducer from '../store/giftCard';
import paymentMethodReducer from './paymentMethod';
import paymentToken from "./paymentToken";
import qRCode from "./qRCode";
import orderHistory from './orderHistory';
import orderDetail from './orderDetail';
import showCompletedOrder from './showCompletedOrder';
import paymentOptionsSummary from './paymentOptionsSummary'; …
Run Code Online (Sandbox Code Playgroud)

react-native react-redux redux-toolkit

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

Python中的多维Eucledian距离

我想计算2个阵列之间多维度(24维)的eucledian距离.我正在使用Numpy-Scipy.

这是我的代码:

import numpy,scipy;

A=numpy.array([116.629, 7192.6, 4535.66, 279714, 176404, 443608, 295522, 1.18399e+07, 7.74233e+06, 2.85839e+08, 2.30168e+08, 5.6919e+08, 168989, 7.48866e+06, 1.45261e+06, 7.49496e+07, 2.13295e+07, 3.74361e+08, 54.5, 3349.39, 262.614, 16175.8, 3693.79, 205865]);

B=numpy.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 151246, 6795630, 4566625, 2.0355328e+08, 1.4250515e+08, 3.2699482e+08, 95635, 4470961, 589043, 29729866, 6124073, 222.3]);
Run Code Online (Sandbox Code Playgroud)

但是,我曾经scipy.spatial.distance.cdist(A[numpy.newaxis,:],B,'euclidean')计算过核心距离.

但它给了我一个错误

raise ValueError('XB must be a 2-dimensional array.');
Run Code Online (Sandbox Code Playgroud)

我好像不明白.

我抬头scipy.spatial.distance.pdist但不明白如何使用它?

还有其他更好的方法吗?

python numpy cluster-analysis scipy euclidean-distance

8
推荐指数
5
解决办法
1万
查看次数

AUTO_INCRMENT的标准化方式

有没有一种标准化的方法可以在 SQL 中创建一个带有自动增量列(我们称之为 ID)的表,以便我基本上可以在所有数据库中使用它?

\n

(例如,在 SQL-92 中标准化)\n如果是这样 - 怎么办?如果没有,为什么?我认为 auto_increment 是一个非常常用的属性,所以我认为标准化它非常重要\xe2\x80\xa6

\n

sql standards

8
推荐指数
1
解决办法
2589
查看次数