スキップしてメイン コンテンツに移動

Xcode で C++ の単体テスト環境がほしい

今日和。
梅雨ですね。

自分は、昔気質なのでどうしても C++ が重宝してしまいます。
ですから Xcode でも C++ の単体テスト環境がほしいのです。
そこでまた Google Test を導入しました。
ところが、これから紹介するページに従って環境を構築しようとしても、あちこちで失敗してしまいました。でも、それなりのテストはできるところまで持ち込んだので、備忘録を残しておきます。


【My Enigma】ロボティクスのためのGoogle TestによるC++コードユニットテスト


先ず、私のマシンでは Homebrew を使ってはいますが、いろいろと必要なものがインストールできていませんでした。

$ brew install shtool m4 cmake libtool

そのうえで以下のコマンドを実行しました。

$ cmake -G Xcode .
$ autoconf
$ ./configure
$ make


さらに上掲 HP の作者が公開してくれている Python スクリプト “GoogleTestDiscover” も若干手直ししました。生成されるコンパイル・コマンドが  -lgtest_maind -lgtestd になるように書き換えます。Path もちゃんとライブラリがある場所を指すようにしてやってください。こちらでは Debug 環境でしかビルドできなかったので。

$ g++ test.cpp -I./gtest/googletest/include -L./gtest/googlemock/gtest -lpthread -lgtest_maind -lgtestd && ./a.out


これで、Google Test に同梱されている sample?_UnitTest.cc 群が、かなりテストできるようになりました。それでも sample5.cc はリンカがシンボルを解決できなくて失敗します。


とりあえず、メモでした。
今後、改善があれば書き直します。

コメント

このブログの人気の投稿

過ちては則ち改むるに憚ること勿れ

今晩和。 実は、こどもプログラミング教室に関わりはじめました。 そこで Scratch 言語についての見解を改めねば、と思ったのです。 実際に Scratch に触って、そのブロック構造を組み合わせたプログラミングを体験してみると、多角形や角丸長方形などを使い分けたシンボリックなブロック群が、そのまま処理構造の可能性を暗示していて、かなりオモシロくプログラミングを学習できるのです。 それと、ある程度の範囲でコーディングできるだけのブロックは整備されているので、モンテカルロ法のシミュレーションや、フラクタル図形の描画など、それなりにテクニカルなことはできてしまうのです。もちろん、ちいさい子供たちの多くは、思いおもいにゲームや便利ツールを作るのですがね。 システム開発はある程度、処理系依存の部分が大きい、とはいまだに感じてますが、それでも Scratch は非常にオモシロい学習用プログラミング言語で、その可能性はかなり広い範囲に及んでいる、と考えを変えました。 それにしても、こどもの面倒を見るって興味深いことですね。

あたらしい道具

今晩和。 またまた御無沙汰しております。 きょうは、大変おもしろい『道具』に出逢ったので、その御紹介を。 その道具とは “TensorBoard” です。 詳しくは、以下のリンクのページを熟読なさってください。 https://yag-ays.github.io/project/embedding-visualization/ この分析ツールを使ってみるために、国連の『世界人権宣言』を mecab で分かち書きにしてから word2vec に通してみました。 わたしは門外漢なので、あまりよく分かっていませんが、要はこれ、主成分分析(PCA)ですね。いや、オプションで t-SNE という「学習」にも切り替えられますが。 なんで、こんなツールを探し出して使ってみたかというと、実は仕事上の必要から、大量の文献の調査をしているのです。ところがアタマがパンクしそうになるくらい大量で困っていたのでした。そこで、要領よく文献を精査するために、キーワード検索を多用しようか、と云う段階になりました。 そうすると、とあるキーワードに「距離的に近い」別のキーワード群を知りたいと思ったのです。そこでネットを散策していたら上記のページに行き当たり。 上記の例では、対象が『世界人権宣言』ですので、まあ、ドキュメントの量としても短いし、出てくる単語の語彙も限られていて、いわゆる予想どおりの結果になっております。 ですが、これを不特定多数のドキュメント群に対して施したときに、どうなるか? まだ、わたしには分かりません。 ですが、確かな手応えを感じています。 こんなツールが、ちょっと環境を整えるだけで使える時代。 ああ、ほんとうに良くなりました。 感謝深甚です。 追記: 手持ちの参考文献をすべて .txt にして、TensorBoard で可視化してみました。 これはスゴい! 便利です。

「子供向き」には留まらない想像力

今晩和。 実は Scratch で細々とした作例を積み重ねています。 どうですか、これは? https://scratch.mit.edu/projects/284763417 これは惑星軌道(今回は地球と金星)のあいだに線分を描画しつづけたときにできる『軌跡』です。惑星半径や公転周期などは『理科年表』を参考にしました。有効数字(数値としての具体性)を 5 桁ぐらいにしたら、こんな綺麗な模様ができました。桁数を下げると、また、似て非なる模様になります。 「子供用」とされているプログラミング環境でも、発想次第でいろんなことができる。 自戒とするところです。