このリポジトリには、Gayle Laakmann McDowell のCracking thecoding Interview 6th Editionの C++ および Python ソリューションが含まれています。確かに、この本のソリューションを提供する GitHub リポジトリは他にもあります。しかし、彼らのコードが実際に正しいかどうかはどうやってわかるのでしょうか?テストされていない場合は、テストしないでください。
このプロジェクトでは、すべての C++ ソリューションには C++ Catch フレームワークを使用した単体テストがあり、すべての Python ソリューションには Python 単体テスト フレームワークを使用した単体テストがあります。継続的統合サーバーを使用してテストの正確性を自動的に強化し、コミットごとに実行およびテストされる生きたコードでソリューションが構成されることを保証します。私の知る限り、これはこのレベルのテストの厳密さを備えたインターネットの唯一のソリューション リポジトリです。90% を超える自動テスト カバレッジは、自信を持ってソリューションを参照し、貢献できることを意味します。
9 / 9
完了。8 / 8
完了。4 / 6
完了。11 / 12
完了。7 / 8
完了。0 / 10
完了。0 / 12
完了。8 / 14
完了。0 / 8
完了。10 / 11
完了。0 / 6
完了。10 / 11
0 / 7
が完了しました。0 / 4
完了。11 / 26
完了。1 / 26
完了。2
が完了しました。 C++ 合計: 81
ソリューションが完了しました。
9 / 9
完了。8 / 8
完了。6 / 6
完了。11 / 12
完了。7 / 8
完了。0 / 10
完了。0 / 12
完了。11 / 14
完了。0 / 8
完了。1 / 11
完了。0 / 6
完了。0 / 7
が完了しました。2 / 26
完了。3 / 26
完了。 Python 合計: 58
ソリューションが完了しました。
139
独自のソリューションが完了しました。Mac を使用するには、パッケージ マネージャー Homebrew と Pip をインストールする必要があります。これは Makefile で行われます。
git clone https://github.com/alexhagiopol/cracking-the-coding-interview.git ctci
cd ctci
make configure-mac
git clone https://github.com/alexhagiopol/cracking-the-coding-interview.git
cd ctci
make configure-ubuntu
Windows ユーザーの場合は、Windows 10 の Windows Subsystem for Linux (WSL) 機能を使用してこのプロジェクトを開発し、その後、Ubuntu のビルドと WSL 内でのテスト手順に従うことをお勧めします。この推奨事項は、コードへの変更を自動的にテストするサーバー上で Ubuntu、CMake、および makefile ベースのビルドおよび実行システムを使用しているためです。 Windows 開発の詳細については、このページの最後にAppendix
セクションを参照してください。
テストはこのプロジェクトの最も重要な部分です。解決される問題を定義するのは単体テストだけです。ルート ディレクトリで次のコマンドを実行して、Python および C++ ですべてのテストを実行します。
make test
make test
このプロジェクトの開発中に私が最もよく使用するコマンドです。私のワークフローは次のとおりです。
make test
実行して、プロジェクトが単体テストを満たしていない箇所を確認します。make test
成功するまで問題解決策の実装を追加します。これにより、各 Python ソース ファイル内のテストでカバーされていない行が正確に表示されます。
pip install coverage
make test_coverage
このプロジェクトの目標は、教科書の第 6 版のすべての問題に対して、テスト済みの Python および C++ ソリューションを作成することです。ぜひ助けが必要なので、PR の方は大歓迎です。各ソリューションをテストするには独自の小さなデータセットとインフラストラクチャが必要であるため、やるべきことはたくさんあります。以下に役立つ方法をいくつか紹介します。
貢献がある場合は、 master
ブランチに PR してください。上記の項目についてご不明な点がございましたら、お気軽にメッセージください。
私自身の Windows マシンでは、Windows でネイティブに実行される CLion を使用して開発し、WSL ターミナル ウィンドウでmake test
を使用してコードをテストします。 WSL を使用したくないユーザーのために、以下のビルドおよびテスト方法を開発しました。
このプロジェクトは、Visual Studio 2017 を使用して、WSL を使用せずに純粋に Windows 上で開発できます。まず、コードのクローンを作成します。
git clone https://github.com/alexhagiopol/cracking-the-coding-interview.git
cd ctci
git submodule update --init
次に、選択した方法を使用して Python3 と numpy をインストールします。私は公式 Web サイトから Python3 と pip3 をインストールしてから、pip 経由で numpy をインストールすることを好みます。
pip install numpy
次に、CMake をサポートする Visual Studio 2017 でプロジェクトを開きます。 Visual Studio を使用してコードを編集し、デバッグ機能を使用するのが最適なワークフローであることがわかりました。コードをビルドする前に、次の手順に従って、必要な PDB をダウンロードするように Visual Studio に指示する必要があります。さらに、興味がある場合は、この記事で Visual Studio CMake のサポートについて詳しく説明します。ルート プロジェクト ディレクトリ内の CMakeSettings.json ファイルは、Visual Studio ビルド フォルダーの場所がプロジェクトのルート フォルダー内に設定されます。
この投稿で説明されているように、CMake モードの VisualStudio では CTRL + F5 を押してもtests.exe
およびtests.py
ファイルのコンソール出力を表示したままにすることができないため、テストを実行してその出力を確認するのは PowerShell ウィンドウから行うのが最適です。 「通常の」Visual Studio の使用に適用されます。私は Visual Studio に関する状況を監視しており、より良い解決策を見つけたら、それを実装するか投稿する予定です。もっと良いものを知っている場合は、私に連絡してください。
それまでの間、プロジェクトのルート ディレクトリから、以下を使用して Python テストを実行できます。
python tests.py
...そして、...を使用して C++ テストを実行できます。
.buildx64-Debugtests.exe