有没有办法在Elixir的ExUnit模块中testing私有函数?

由defp定义的函数不会被导出,所以我不能在模块以外的地方执行它们。

对n个第一个元素已经sorting的向量进行sorting?

考虑N元素的std::vector v ,并且认为n第一个元素已经被sorting, n < N ,其中(Nn)/N非常小: 有一个聪明的方法使用STLalgorithmsorting这个向量比完整的std::sort(std::begin(v), std::end(v))更快吗? 编辑:澄清:(Nn)未分类的元素应插入在已sorting的n个第一个元素内的正确位置。 EDIT2:奖金问题:以及如何findn? (对应于第一个未分类的元素)

Mac OS X 10.9 – 设置永久环境variables

如何在Mac OS X 10.9中设置永久环境variables(即,每次启动新的terminal会话时不需要导出的环境variables)? 我find了很多关于修改我的.bash_profile和.profile的答案,但是这些选项似乎都不是永久解决scheme – 只是暂时的。 我试图设置的variables是MULE_HOME 。 我在我的bashconfiguration文件中有以下行: export MULE_HOME=$(/opt/mule-standalone-3.4.0) 但是,当我启动terminal我得到以下行(不知道这是否是正常行为?): -bash: /opt/mule-standalone-3.4.0: is a directory 并运行一个简单的env命令返回以下内容: TERM_PROGRAM=Apple_Terminal SHELL=/bin/bash TERM=xterm-256color TMPDIR=/var/folders/fc/68bqp4jj411gynj5qvwhq6z1shs1fy/T/ Apple_PubSub_Socket_Render=/tmp/launch-xKtkql/Render TERM_PROGRAM_VERSION=326 TERM_SESSION_ID=E97BFE4B-AF85-4933-B252-0883CC085349 USER=dan SSH_AUTH_SOCK=/tmp/launch-rEmTWW/Listeners __CF_USER_TEXT_ENCODING=0x730C85DE:0:0 PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin __CHECKFIX1436934=1 PWD=/Users/dan JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home LANG=en_GB.UTF-8 MULE_HOME= SHLVL=1 HOME=/Users/dan LOGNAME=danwiseman _=/usr/bin/env 为了解决这个问题,我现在每次开始一个新的terminal会话时,都要export MULE_HOME=/opt/mule-standalone-3.4.0 ,虽然不费劲,但是有点不方便。 我在这里做错了什么,导致variables只能被临时设置? 提前致谢。

什么是Apache Beam?

我正在浏览Apache的post,发现了一个叫做Beam的新术语。 任何人都可以解释一下Apache Beam究竟是什么? 我试图谷歌,但无法得到明确的答案。

angular2testing,我怎么模仿子组件

如何在茉莉花testing中模拟子组件? 我有MyComponent ,它使用MyNavbarComponent和MyToolbarComponent import {Component} from 'angular2/core'; import {MyNavbarComponent} from './my-navbar.component'; import {MyToolbarComponent} from './my-toolbar.component'; @Component({ selector: 'my-app', template: ` <my-toolbar></my-toolbar> {{foo}} <my-navbar></my-navbar> `, directives: [MyNavbarComponent, MyToolbarComponent] }) export class MyComponent {} 当我testing这个组件时,我不想加载和testing这两个子组件; MyNavbarComponent,MyToolbarComponent,所以我想嘲笑它。 我知道如何使用provide(MyService, useClass(…))来模拟服务,但我不知道如何模拟指令; 组件; beforeEach(() => { setBaseTestProviders( TEST_BROWSER_PLATFORM_PROVIDERS, TEST_BROWSER_APPLICATION_PROVIDERS ); //TODO: want to mock unnecessary directives for this component test // […]

C99 VLA的C ++替代(目标:保持性能)

我将一些C99代码移植到C ++中,这些代码大量使用可变长度数组(VLA)。 我用一个在堆上分配内存的数组类来replaceVLA(堆栈分配)。 性能下降幅度很大,下降了3.2倍(见下面的基准)。 我可以在C ++中使用什么样的VLA快速replace? 我的目标是在重写C ++代码时将性能降到最低。 我build议的一个想法是编写一个在类中包含一个固定大小的存储(即可以堆栈分配)的数组类,并将其用于小型数组,并自动切换到大型数组的堆分配。 我的这个实现是在post的最后。 它工作得很好,但我仍然无法达到原始C99代码的性能。 要接近它,我必须增加这个固定大小的存储( MSL以下)到我不舒服的大小。 我不想在堆栈上分配太大的数组, 即使是那些不需要它的小数组,因为我担心它会触发堆栈溢出。 C99 VLA实际上不太容易这样做,因为它永远不会使用比需要更多的存储空间。 我来到std::dynarray ,但我的理解是,它没有被接受到标准(还?)。 我知道clang和gcc支持C ++中的VLA,但我也需要它与MSVC一起工作。 实际上,更好的可移植性是C ++重写的主要目标之一(另一个目标是将程序本来就是一个命令行工具)编译成可重用的库。 基准 MSL是MSL组大小,高于此大小我切换到堆分配。 一维和二维数组使用不同的值。 原始C99代码:115秒。 MSL = 0(即堆分配):367秒(3.2x)。 1D-MSL = 50,2D-MSL = 1000:187秒(1.63x)。 1D-MSL = 200,2D-MSL = 4000:143秒(1.24x)。 1D-MSL = 1000,2D-MSL = 20000:131(1.14x)。 增加MSL进一步提高了性能,但最终程序将开始返回错误的结果(我认为是由于堆栈溢出)。 这些基准与OS X上的clang 3.7一样,但是gcc 5显示了非常相似的结果。 码 这是我现在使用的“smallvector”实现。 我需要一维和二维vector。 我切换到大小MSL以上的堆分配。 template<typename […]

@GetMapping和@RequestMapping之间的区别(method = RequestMethod.GET)

@GetMapping和@RequestMapping(method = RequestMethod.GET)什么区别? 我在一些Spring Reactive示例中@GetMapping ,使用了@GetMapping而不是@RequestMapping

应用程序不与VS 2008 SP1 DLL一起运行,以前的版本与RTM版本一起使用

由于我们从Visual Studio 6切换到Visual Studio 2008,我们一直在使用MFC90.dll和msvc [pr] 90.dll以及清单文件在一个私人的并排configuration,以便不用担心版本或者将它们安装到系统中。 在SP1之前,这是工作正常(并仍然在我们的开发机器上正常工作)。 现在我们已经完成了SP1后的一些testing,自从昨天上午以来我一直在拉我的头发。 首先,我们的NSIS安装程序脚本从redist文件夹中提取dll和清单文件。 这些不再正确,因为应用程序仍然链接到RTM版本。 因此,我将_BIND_TO_CURRENT_VCLIBS_VERSION=1的定义添加到了我们所有的项目中,以便他们将使用redist文件夹中的SP1 DLL(或随着新服务包的出现)。 花了几个小时才find这个。 我已经从编译中检查了中间文件文件夹中生成的清单文件,并正确列出了9.0.30729.1 SP1版本。 我有双重和三重检查取决于一个干净的机器:它都链接到本地​​dll没有错误。 运行应用程序仍然得到以下错误: 应用程序未能正确初始化(0xc0150002)。 单击确定以终止该应用程序。 我在谷歌或微软所做的search都没有提出任何与我的具体问题有关的事情(但是有这个错误消息的2005年的点击率)。 任何人有任何类似的问题与SP1? 选项: find问题并解决问题,使其工作,因为它应该(首选) 安装redist 挖掘旧的RTM dll和清单文件,并删除#define使用当前的。 (我已经在早期的安装程序版本中获得了它们,因为微软将它们从您的redist文件夹中剔除)! 编辑:我已经尝试重新构buildclosures的定义(链接到RTM DLL),并且只要在文件夹中安装了RTM dll即可。 如果SP1 dll被放入,它会得到以下错误: c:\ Program Files \ … \ … \ X.exe 此应用程序无法启动,因为应用程序configuration不正确。 重新安装应用程序可能会解决此问题。 没有其他人必须处理这个问题吗? 编辑:只是为了咧嘴笑,我下载并在我的testing机上运行VS2008SP1的vcredist_x86.exe。 它工作。 使用SP1 DLL。 和我的RTM链接的应用程序。 但不是在SP1以前的私人并行分布。

如何加载reflection操作的.NET程序集,随后卸载它?

我正在编写一个工具来报告有关在我的客户端系统中部署的跨环境和区域的.NET应用程序的信息。 我想阅读这些程序集中的程序集属性的值。 这可以使用Assembly.ReflectionOnlyLoad来实现,但是即使这种方法也能保持程序集的加载。 这里的问题是我不能加载两个具有相同名称的程序集,所以自然不能比较在不同系统中部署的相同应用程序。 在这一点上,我假设解决scheme将涉及使用临时AppDomain的。 有人可以详细说明如何将程序集加载到另一个AppDomain ,从中读取属性,然后卸载AppDomain ? 这需要为文件系统上的程序集以及URL地址上的程序集起作用。

我如何从Emacs中运行Cygwin Bash Shell?

我在Windows上运行GNU Emacs,所以input: Mx shell 启动Windows命令行DOS shell。 不过,我希望能够在Emacs中运行Cygwin Bash Shell(或任何其他非Windows shell)。 这怎么能轻松完成呢?