<commit_before>//--------------------------------------------------------------------------------------
// File: Game.cpp
//
// Developer unit test for DirectXTK Model
//
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
//
// http://go.microsoft.com/fwlink/?LinkId=248929
//--------------------------------------------------------------------------------------

#include "pch.h"
#include "Game.h"

#define GAMMA_CORRECT_RENDERING
#define USE_FAST_SEMANTICS
#define NORMALMAPS

// Build for LH vs. RH coords
#define LH_COORDS

namespace
{
    constexpr float row0 = 2.f;
    constexpr float row1 = 0.f;
    constexpr float row2 = -2.f;
}

extern void ExitGame() noexcept;

using namespace DirectX;
using namespace DirectX::SimpleMath;

using Microsoft::WRL::ComPtr;

extern std::unique_ptr<Model> CreateModelFromOBJ(
    _In_ ID3D11Device* d3dDevice,
    _In_ ID3D11DeviceContext* context,
    _In_z_ const wchar_t* szFileName,
    _In_ IEffectFactory& fxFactory,
    bool enableInstacing,
    ModelLoaderFlags flags);


//--------------------------------------------------------------------------------------

// BUGBUG: why is Model not is_nothrow_move_constructible?
static_assert(std::is_move_constructible<Model>::value, "Move Ctor.");
static_assert(std::is_nothrow_move_assignable<Model>::value, "Move Assign.");

static_assert(std::is_nothrow_move_constructible<ModelMesh>::value, "Move Ctor.");
static_assert(std::is_nothrow_move_assignable<ModelMesh>::value, "Move Assign.");

static_assert(std::is_nothrow_move_constructible<ModelMeshPart>::value, "Move Ctor.");
static_assert(std::is_nothrow_move_assignable<ModelMeshPart>::value, "Move Assign.");

static_assert(std::is_nothrow_move_constructible<ModelBone>::value, "Move Ctor.");
static_assert(std::is_nothrow_move_assignable<ModelBone>::value, "Move Assign.");

static_assert(std::is_nothrow_move_constructible<ModelBone::TransformArray>::value, "Move Ctor.");
static_assert(std::is_nothrow_move_assignable<ModelBone::TransformArray>::value, "Move Assign.");

//--------------------------------------------------------------------------------------

Game::Game() noexcept(false) :<commit_msg>Bug was caused by VS 2017<commit_after>//--------------------------------------------------------------------------------------
// File: Game.cpp
//
// Developer unit test for DirectXTK Model
//
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
//
// http://go.microsoft.com/fwlink/?LinkId=248929
//--------------------------------------------------------------------------------------

#include "pch.h"
#include "Game.h"

#define GAMMA_CORRECT_RENDERING
#define USE_FAST_SEMANTICS
#define NORMALMAPS

// Build for LH vs. RH coords
#define LH_COORDS

namespace
{
    constexpr float row0 = 2.f;
    constexpr float row1 = 0.f;
    constexpr float row2 = -2.f;
}

extern void ExitGame() noexcept;

using namespace DirectX;
using namespace DirectX::SimpleMath;

using Microsoft::WRL::ComPtr;

extern std::unique_ptr<Model> CreateModelFromOBJ(
    _In_ ID3D11Device* d3dDevice,
    _In_ ID3D11DeviceContext* context,
    _In_z_ const wchar_t* szFileName,
    _In_ IEffectFactory& fxFactory,
    bool enableInstacing,
    ModelLoaderFlags flags);


//--------------------------------------------------------------------------------------

// Note VS 2017 incorrectly returns 'false' for is_nothrow_move_constructible<Model>
static_assert(std::is_move_constructible<Model>::value, "Move Ctor.");
static_assert(std::is_nothrow_move_assignable<Model>::value, "Move Assign.");

static_assert(std::is_nothrow_move_constructible<ModelMesh>::value, "Move Ctor.");
static_assert(std::is_nothrow_move_assignable<ModelMesh>::value, "Move Assign.");

static_assert(std::is_nothrow_move_constructible<ModelMeshPart>::value, "Move Ctor.");
static_assert(std::is_nothrow_move_assignable<ModelMeshPart>::value, "Move Assign.");

static_assert(std::is_nothrow_move_constructible<ModelBone>::value, "Move Ctor.");
static_assert(std::is_nothrow_move_assignable<ModelBone>::value, "Move Assign.");

static_assert(std::is_nothrow_move_constructible<ModelBone::TransformArray>::value, "Move Ctor.");
static_assert(std::is_nothrow_move_assignable<ModelBone::TransformArray>::value, "Move Assign.");

//--------------------------------------------------------------------------------------

Game::Game() noexcept(false) :
{'fraction_non_alphanumeric': 0.26681818181818184, 'fraction_numerical': 0.010454545454545454, 'mean_word_length': 2.7107925801011805, 'pattern_counts': {'":': 0, '<': 26, '<?xml version=': 0, '>': 26, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3578572', 'n_tokens_mistral': 1349, 'n_tokens_neox': 1298, 'n_words': 247}