読者です 読者をやめる 読者になる 読者になる

matthew as a q.

目標10記事quant

NUnitを使った自動テスト環境

今回はVisutal Studio 2015でNUnitを使えるようにしようという話。
最終的に、コマンドプロンプトからテスト実行できるようになるのが目標。

  • 前提条件;
    • 環境:OS: Windows 10
    • NUnitのテストは既に書けているものとする。

NUnitを使ってVisual Studioでユニットテスト自動化的なやつやる - 残像ブログ




以下の記事の2番目の方法「Using NuGet Packages」でインストールをする。

Installation · nunit/docs Wiki · GitHub

  • インストール

1. Visual Studio 2015を立ち上げる。
2. 「ツール(T)」→「NuGetパッケージマネージャー(N)」→「ソリューションのNuGetパッケージの管理(N)」
3. 画面内、「参照」タブを選び、パッケージの検索窓へ、NUnitと入力
4. 検索結果から、「NUnit」、「NUnit.Console」をインストール(複数のProjectで使用するのであれば、ソリューション下へインストール)


これでインストール完了。

  • テスト実行

GUIで実行する方法と、CUIで実行する方法があるが、今回はCUIで実行する方法を紹介。

上に書いた方法でインストールを行うと、インストールしたソリューションフォルダの直下に「packages」フォルダが出来上がっている。

「packages」→「NUnit.ConsoleRunner.3.5.0」→「tools」→「nunit3-console.exe」を、テストを含んだプロジェクトの「dll」、「exe」を引数にして実行することで、テストを実行できる。

C4996を回避する

環境

Windows 10, Visual Studio 2015

エラーメッセージ

C4996 'std::_Fill_n': Function call with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators' DPDPLibrary c:\program files (x86)\microsoft visual studio 14.0\vc\include\xutility 2810

回避方法

エラーメッセージにあるようにコンパイルオプション「_SCL_SECURE_NO_WARNINGS」を指定する。

Visual Studio 2015でのコンパイルオプションの設定は以下から行う。

該当プロジェクトを右クリック
→プロパティ
→構成プロパティ
C/C++
プリプロセッサ
プリプロセッサの定義の欄に、エラーメッセージの通りにコンパイルオプションを追加する。

c++の親クラスへのコンストラクタ引数受け渡し

継承関係にある以下のような2つのクラスがあるとしよう。

//定義
class IHoge {
    IHoge(const double a);
};

class Hoge {
    Hoge(const double b);
}

//実装
IHoge::IHoge(const double a)
{
}

Hoge::Hoge(const double b)
{
}

このコードはエラーとなる。

error: constructor for 'Hoge' must explicitly initialize the base class
      'IHoge' which does not have a default constructor

なぜエラーとなるのかを考えるためには継承関係の子クラスが生成されるときの仕様を知る必要がある。

まず前提として、子クラスを生成するときには、「子クラスのコンストラクタ→親クラスのコンストラクタ」という順序で親クラスのコンストラクタも呼ばれる。

そのとき、今回のように子クラスHogeコンストラクタが引数aをとって、その親クラスIHogeのコンストラクタも引数bをとるような場合、子クラスを生成したときには、親クラスIHogeのコンストラクタの引数として暗黙的にbが渡されることはない。そこで明示的に渡してやる必要がある。

//definition
class IHoge {
public:
    IHoge(const double a);

};

class Hoge : public IHoge {
public:
    Hoge(const double b);
};

//implementation
IHoge::IHoge(const double a)
{
}

Hoge::Hoge(const double b)
:IHoge(b)
{
}


int main()
{
    Hoge h(1.0);
    return 0;
}

独習C++にも書いてある話。

bibtex周り

  • .texファイルに書く内容
¥bibliographystyle{jplain}
¥bibliography{絶対パス/reference}

上記では、reference.bibというファイルを指定している。

LaTeXBibtexLaTeXLaTeX
で文献反映。

  • .bibファイルの管理

CotEditorのようなテキストエディタで個別のbibtex追記
→BibDeskで参照記号変更

という運用をしている。もっといい追加、運用方法ないだろうか。

macのデフォルトrubyの場所

homebrewでbrew updateできなくなって、そのエラー解消するために、変なことしてhomebrewが消える。
→それを直すためにhomebrew再インストールしようとするも、rubyが消えたrbenvを参照してて、機能しなかった。
→直接macデフォルトのrubyを指定して、homebrewをinstall

rubyのある場所

/usr/bin/ruby

香港3日目

香港島の東、causeway bayへ。
f:id:takeknock:20150228100649j:plain
メモ3

街中での両替にいろいろ手間取る→空港より5%くらいいいレートで両替できた
f:id:takeknock:20150228101057j:plain

→トラムで東へ→causeway bay→ワールドトレードセンターへ
f:id:takeknock:20150228130625j:plain

→noon day gunを間近で見る→街中で見かけて気になってた、ハチノスのった麺を食べる
f:id:takeknock:20150228122548j:plain

→さらに東へ歩いてビクトリアパーク→ビクトリア女王とツーショット写真→時間あったので急遽、建物の感じが大学ぽい、公園正面にある香港中央図書館へ→バスに乗って香港競馬博物館へ→( ゚Д゚)ウマー→チムシャツォンのカウロンホテルから小籠包食べ放題夜景観光ツアーへ
f:id:takeknock:20150228174334j:plain

→コースのさんらーたんで、香港の目標達成
f:id:takeknock:20150228180521j:plain

→アツアツ小籠包( ゚Д゚)ウマー
f:id:takeknock:20150228181237j:plain

→おっちゃんのガイド付きで2階建てオープンバスツアー

→ネイザンロードの南側は宝石店めっちゃ多い。宝石店の向かいに同じ看板の宝石店があるレベル

→香港の人、家賃と車で収入の半分持ってかれるそう。2LDKで、kowloonだと月20万~。香港人もつらい(おっちゃん談)

→6-7階建てくらいの60年代のマンションは階段しかなくて、おっちゃんにはつらい(おっちゃん談)

→ネイザンロードの看板低くて、立って手を伸ばすと届きそうなレベル。

→魔法の言葉「ペンディー」

→女人街で解散して散策

→意識の高まりそうなトランプ見つけたので購入 with ペンディー。店のおばちゃんのアンカリングに釣られてほぼ値切れず

→青歯イヤホンを見つけて店のお姉ちゃんと提示額の(ペンディー)

→楽しく交渉できたので結局購入(その間にTはセルカ棒購入)

→戻ってちらっとランカイホンへ
f:id:takeknock:20150228213930j:plain

香港3日目

香港島の東、causeway bayへ。
f:id:takeknock:20150228100649j:plain
メモ3

街中での両替にいろいろ手間取る→空港より5%くらいいいレートで両替できた
f:id:takeknock:20150228101057j:plain

→トラムで東へ→causeway bay→ワールドトレードセンターへ
f:id:takeknock:20150228130625j:plain

→noon day gunを間近で見る→街中で見かけて気になってた、ハチノスのった麺を食べる
f:id:takeknock:20150228122548j:plain

→さらに東へ歩いてビクトリアパーク→ビクトリア女王とツーショット写真→時間あったので急遽、建物の感じが大学ぽい、公園正面にある香港中央図書館へ→バスに乗って香港競馬博物館へ→( ゚Д゚)ウマー→チムシャツォンのカウロンホテルから小籠包食べ放題夜景観光ツアーへ
f:id:takeknock:20150228174334j:plain

→コースのさんらーたんで、香港の目標達成
f:id:takeknock:20150228180521j:plain

→アツアツ小籠包( ゚Д゚)ウマー
f:id:takeknock:20150228181237j:plain

→おっちゃんのガイド付きで2階建てオープンバスツアー

→ネイザンロードの南側は宝石店めっちゃ多い。宝石店の向かいに同じ看板の宝石店があるレベル

→香港の人、家賃と車で収入の半分持ってかれるそう。2LDKで、kowloonだと月20万~。香港人もつらい(おっちゃん談)

→6-7階建てくらいの60年代のマンションは階段しかなくて、おっちゃんにはつらい(おっちゃん談)

→ネイザンロードの看板低くて、立って手を伸ばすと届きそうなレベル。

→魔法の言葉「ペンディー」

→女人街で解散して散策

→意識の高まりそうなトランプ見つけたので購入 with ペンディー。店のおばちゃんのアンカリングに釣られてほぼ値切れず

→青歯イヤホンを見つけて店のお姉ちゃんと提示額の(ペンディー)

→楽しく交渉できたので結局購入(その間にTはセルカ棒購入)