Synodic-Software / Soul-Engine

Physically based renderer and simulation engine for real-time applications.
GNU General Public License v3.0
42 stars 24 forks source link

Settings Exploration #88

Closed Behemyth closed 7 years ago

Behemyth commented 7 years ago

To acclimate yourself with how the settings work currently, it is best that you implement a few basic unit tests in the Test/SettingsTest.cpp file.

One question which is not immediately answered by the current tests is what the behavior of Get and Set are if called in that order. Currently, Set is called before Get in every test case. Try to create another test that fills this need.

It may be the case that you need to link the C++ Boost library to the project that contains your test file. If that is the case visit Boost 1.65.1 Binaries to download the library with Visual Studio 17. Visual Studio 15 corresponds to 14.0 and Visual Studio 17 corresponds to 14.1. If you do not want to use Visual Studio as your IDE, you will have to find a way to build and link the library with whatever compiler you are using. eti-yen is working on a cmake project that will allow any compiler be used easily, but for now, Visual Studio is the goto.

Once you have a new Visual Studio project created, you will have to link the library by adding the boost directory location to Properties->C++->General->Additional Include Directories. You should also add the root of your forked repository here as well so you can say things like, #include "Source Files/Utility/Settings.h"

Also, you will have to add the Boost \libs subdirectory to Properties->Linker->General->Additional Libraries. There are many online tutorials who explain this better than I.

Both Alex and Jihun did this at the recent small group meeting. Ask any questions is the soul-engine channel and all of us will be glad to help!

aferritto commented 7 years ago

void testGetUndefinedSettings() and void testGetUndefinedSettings2() should cover getting settings which have not been set. They set settings like a=1 and then get settings like a=3.14 so that the default value passed to get should be returned.

Behemyth commented 7 years ago

I see, so then @r3C0iL can focus on getting the project up and running. Thanks for the greet tests ferria!