小编Sea*_*ied的帖子

在任何Haskell测试框架中是否存在assertException?

我正在使用HUnit编写一些测试,我想断言特定函数在给定某个输入的情况下抛出异常.我找不到提供所需功能的断言功能.有人知道测试框架吗?

testing haskell

14
推荐指数
2
解决办法
1486
查看次数

我在Factory Girl中使用一个序列来获取唯一值,但我收到了验证错误

我有这样定义的模型

class Lga < ActiveRecord::Base
  validates_uniqueness_of :code
  validates_presence_of :name
end 
Run Code Online (Sandbox Code Playgroud)

我为Lgas定了一个工厂

Factory.sequence(:lga_id) { |n| n + 10000 }

Factory.define :lga do |l|
  id = Factory.next :lga_id
  l.code "lga_#{id}"
  l.name "LGA #{id}"
end
Run Code Online (Sandbox Code Playgroud)

但是,当我跑

Factory.create(:lga)
Factory.create(:lga)
Run Code Online (Sandbox Code Playgroud)

script/console我得到

>> Factory.create(:lga)
=> #<Lga id: 2, code: "lga_10001", name: "LGA 10001", created_at: "2010-03-18  23:55:29", updated_at: "2010-03-18 23:55:29">
>> Factory.create(:lga)
ActiveRecord::RecordInvalid: Validation failed: Code has already been taken
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails factory-bot

7
推荐指数
1
解决办法
8687
查看次数

如何使用cpp将宏转换为字符串?

GNU的cpp允许您将宏参数转换为字符串

#define STR(x) #x
Run Code Online (Sandbox Code Playgroud)

然后,STR(hi)被替换为"hi"

但是,如何将宏(不是宏参数)转换为字符串?

假设我有一个具有某些值的宏CONSTANT,例如

#define CONSTANT 42
Run Code Online (Sandbox Code Playgroud)

这不起作用:STR(CONSTANT).这产生"CONSTANT"的不是我们想要的.

c++ string constants stringification

6
推荐指数
2
解决办法
1187
查看次数

混合如何与WebGL中的GLSL ES片段着色器一起使用?

我正在尝试使用WebGL显示一个简单的效果.当然,这意味着我正在使用GLSL ES 1.0规范中定义的片段着色器语言.

我正在使用的代码主要是从其他来源复制的.它设置一个正方形并使用片段和顶点着色器来确定像素颜色.以下代码将只显示一个白色方块.

gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);
Run Code Online (Sandbox Code Playgroud)

但是,如果我将alpha分量更改为1.0然后它将显示黑色方块.

gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0); // displays a black square
Run Code Online (Sandbox Code Playgroud)

我假设片段着色器输出的颜色必须与之前的颜色组合.如何确保只有最后一种颜色(不论其alpha值)是否实际被选为要显示的颜色?

或者也许我的订单错了.也许后期阶段与片段着色器中的颜色组合以产生白色.在任何情况下,我都知道正在进行某种混合,因为当我将alpha值更改为0.5时,我得到一个灰色方块.我只是想知道,白色来自哪里?我怎么摆脱它呢?

据我所知,问题与混合功能无关.该代码是在GitHub 这里.在Google Chrome或Firefox中试用.

compositing alphablending colors glsl webgl

3
推荐指数
1
解决办法
7853
查看次数