Merge remote-tracking branch 'upstream/feature/GraphingCalculator' into mergeFeature

This commit is contained in:
Eric Wong (PAX)
2020-01-06 14:42:40 -08:00
129 changed files with 15906 additions and 928 deletions

View File

@@ -0,0 +1,39 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#include "pch.h"
#include "AsyncHelper.h"
#include <chrono>
#include <thread>
using namespace std;
using namespace concurrency;
using namespace Platform;
using namespace CalculatorApp;
using namespace Windows::UI::Core;
using namespace Windows::ApplicationModel::Core;
task<void> AsyncHelper::RunOnUIThreadAsync(function<void()>&& action)
{
auto callback = ref new DispatchedHandler([action]() { action(); });
return create_task(CoreApplication::MainView->CoreWindow->Dispatcher->RunAsync(CoreDispatcherPriority::Normal, callback));
}
void AsyncHelper::RunOnUIThread(function<void()>&& action, DWORD timeout)
{
task<void> waitTask = RunOnUIThreadAsync([action]() { action(); });
WaitForTask<void>(waitTask, timeout);
}
void AsyncHelper::Delay(DWORD milliseconds)
{
thread timer(bind(CalculatorApp::AsyncHelper::Sleep, milliseconds));
timer.join();
}
void AsyncHelper::Sleep(DWORD milliseconds)
{
this_thread::sleep_for(chrono::milliseconds(milliseconds));
}

View File

@@ -0,0 +1,74 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#pragma once
#include <wrl/wrappers/corewrappers.h>
namespace CalculatorApp
{
class AsyncHelper
{
public:
static concurrency::task<void> RunOnUIThreadAsync(std::function<void()>&& action);
static void RunOnUIThread(std::function<void()>&& action, DWORD timeout = INFINITE);
static void Delay(DWORD milliseconds);
template <typename T>
static void RunOnUIThread(std::function<concurrency::task<T>()>&& action, DWORD timeout = INFINITE)
{
concurrency::task<T> t;
concurrency::task<void> uiTask =
RunOnUIThreadAsync([&t, action]() { t = action(); }).then([&t]() { t.wait(); }, concurrency::task_continuation_context::use_arbitrary());
WaitForTask<void>(uiTask, timeout);
}
template <typename T>
static bool WaitForTask(concurrency::task<T>& t, DWORD timeout = INFINITE)
{
Microsoft::WRL::Wrappers::Event event(CreateEventEx(nullptr, nullptr, CREATE_EVENT_MANUAL_RESET, EVENT_ALL_ACCESS));
if (!event.IsValid())
{
throw std::bad_alloc();
}
Platform::Exception ^ ex;
t.then(
[&event, &ex](concurrency::task<T> prevTask) {
try
{
prevTask.get();
}
catch (Platform::Exception ^ e)
{
ex = e;
}
if (event.IsValid())
{
SetEvent(event.Get());
}
},
concurrency::task_continuation_context::use_arbitrary());
DWORD waitResult; // = STATUS_PENDING;
waitResult = WaitForSingleObjectEx(event.Get(), timeout, true);
event.Close();
if (ex != nullptr)
{
throw ex;
}
if (waitResult == WAIT_FAILED)
{
throw ref new Platform::Exception(-1, L"Error in waiting for task completion: " + waitResult.ToString());
}
return waitResult == WAIT_OBJECT_0;
}
private:
static void Sleep(DWORD milliseconds);
};
}

Binary file not shown.

View File

@@ -103,8 +103,6 @@ namespace CalculatorUnitTests
{
constexpr auto sc_Language_EN = L"en-US";
const UCM::Category CURRENCY_CATEGORY = { NavCategory::Serialize(ViewMode::Currency), L"Currency", false /*supportsNegative*/ };
unique_ptr<CurrencyDataLoader> MakeLoaderWithResults(String ^ staticResponse, String ^ allRatiosResponse)
{
auto client = make_unique<MockCurrencyHttpClientWithResult>(staticResponse, allRatiosResponse);
@@ -382,8 +380,12 @@ TEST_METHOD(Load_Success_LoadedFromWeb)
}
;
TEST_CLASS(CurrencyConverterUnitTests){ const UCM::Unit GetUnit(const vector<UCM::Unit>& unitList, const wstring& target){
return *find_if(begin(unitList), end(unitList), [&target](const UCM::Unit& u) { return u.abbreviation == target; });
TEST_CLASS(CurrencyConverterUnitTests){
const UCM::Category CURRENCY_CATEGORY = { NavCategory::Serialize(ViewMode::Currency), L"Currency", false /*supportsNegative*/ };
const UCM::Unit GetUnit(const vector<UCM::Unit>& unitList, const wstring& target){
return *find_if(begin(unitList), end(unitList), [&target](const UCM::Unit& u) { return u.abbreviation == target; });
}
TEST_METHOD(Loaded_LoadOrderedUnits)

View File

@@ -48,15 +48,377 @@ namespace DateCalculationUnitTests
static DateCalculationEngine ^ m_DateCalcEngine;
public:
TEST_CLASS_INITIALIZE(TestClassSetup)
{
m_DateCalcEngine = ref new DateCalculationEngine(CalendarIdentifiers::Gregorian);
TEST_CLASS_INITIALIZE(TestClassSetup)
{
m_DateCalcEngine = ref new DateCalculationEngine(CalendarIdentifiers::Gregorian);
/* Test Case Data */
/* Test Case Data */
// Dates - DD.MM.YYYY
/*31.12.9999*/
date[0].wYear = 9999;
// Dates - DD.MM.YYYY
/*31.12.9999*/
date[0].wYear = 9999;
date[0].wMonth = 12;
date[0].wDayOfWeek = 5;
date[0].wDay = 31;
date[0].wHour = 0;
date[0].wMinute = 0;
date[0].wSecond = 0;
date[0].wMilliseconds = 0;
/*30.12.9999*/ date[1].wYear = 9999;
date[1].wMonth = 12;
date[1].wDayOfWeek = 4;
date[1].wDay = 30;
date[1].wHour = 0;
date[1].wMinute = 0;
date[1].wSecond = 0;
date[1].wMilliseconds = 0;
/*31.12.9998*/ date[2].wYear = 9998;
date[2].wMonth = 12;
date[2].wDayOfWeek = 4;
date[2].wDay = 31;
date[2].wHour = 0;
date[2].wMinute = 0;
date[2].wSecond = 0;
date[2].wMilliseconds = 0;
/*01.01.1601*/ date[3].wYear = 1601;
date[3].wMonth = 1;
date[3].wDayOfWeek = 1;
date[3].wDay = 1;
date[3].wHour = 0;
date[3].wMinute = 0;
date[3].wSecond = 0;
date[3].wMilliseconds = 0;
/*02.01.1601*/ date[4].wYear = 1601;
date[4].wMonth = 1;
date[4].wDayOfWeek = 2;
date[4].wDay = 2;
date[4].wHour = 0;
date[4].wMinute = 0;
date[4].wSecond = 0;
date[4].wMilliseconds = 0;
/*10.05.2008*/ date[5].wYear = 2008;
date[5].wMonth = 5;
date[5].wDayOfWeek = 6;
date[5].wDay = 10;
date[5].wHour = 0;
date[5].wMinute = 0;
date[5].wSecond = 0;
date[5].wMilliseconds = 0;
/*10.03.2008*/ date[6].wYear = 2008;
date[6].wMonth = 3;
date[6].wDayOfWeek = 1;
date[6].wDay = 10;
date[6].wHour = 0;
date[6].wMinute = 0;
date[6].wSecond = 0;
date[6].wMilliseconds = 0;
/*29.02.2008*/ date[7].wYear = 2008;
date[7].wMonth = 2;
date[7].wDayOfWeek = 5;
date[7].wDay = 29;
date[7].wHour = 0;
date[7].wMinute = 0;
date[7].wSecond = 0;
date[7].wMilliseconds = 0;
/*28.02.2007*/ date[8].wYear = 2007;
date[8].wMonth = 2;
date[8].wDayOfWeek = 3;
date[8].wDay = 28;
date[8].wHour = 0;
date[8].wMinute = 0;
date[8].wSecond = 0;
date[8].wMilliseconds = 0;
/*10.03.2007*/ date[9].wYear = 2007;
date[9].wMonth = 3;
date[9].wDayOfWeek = 6;
date[9].wDay = 10;
date[9].wHour = 0;
date[9].wMinute = 0;
date[9].wSecond = 0;
date[9].wMilliseconds = 0;
/*10.05.2007*/ date[10].wYear = 2007;
date[10].wMonth = 5;
date[10].wDayOfWeek = 4;
date[10].wDay = 10;
date[10].wHour = 0;
date[10].wMinute = 0;
date[10].wSecond = 0;
date[10].wMilliseconds = 0;
/*29.01.2008*/ date[11].wYear = 2008;
date[11].wMonth = 1;
date[11].wDayOfWeek = 2;
date[11].wDay = 29;
date[11].wHour = 0;
date[11].wMinute = 0;
date[11].wSecond = 0;
date[11].wMilliseconds = 0;
/*28.01.2007*/ date[12].wYear = 2007;
date[12].wMonth = 1;
date[12].wDayOfWeek = 0;
date[12].wDay = 28;
date[12].wHour = 0;
date[12].wMinute = 0;
date[12].wSecond = 0;
date[12].wMilliseconds = 0;
/*31.01.2008*/ date[13].wYear = 2008;
date[13].wMonth = 1;
date[13].wDayOfWeek = 4;
date[13].wDay = 31;
date[13].wHour = 0;
date[13].wMinute = 0;
date[13].wSecond = 0;
date[13].wMilliseconds = 0;
/*31.03.2008*/ date[14].wYear = 2008;
date[14].wMonth = 3;
date[14].wDayOfWeek = 1;
date[14].wDay = 31;
date[14].wHour = 0;
date[14].wMinute = 0;
date[14].wSecond = 0;
date[14].wMilliseconds = 0;
// Date Differences
dateDifference[0].year = 1;
dateDifference[0].month = 1;
dateDifference[1].month = 1;
dateDifference[1].day = 10;
dateDifference[2].day = 2;
/*date[2]-[0]*/ dateDifference[3].week = 52;
dateDifference[3].day = 1;
/*date[2]-[0]*/ dateDifference[4].year = 1;
dateDifference[5].day = 365;
dateDifference[6].month = 1;
dateDifference[7].month = 1;
dateDifference[7].day = 2;
dateDifference[8].day = 31;
dateDifference[9].month = 11;
dateDifference[9].day = 1;
dateDifference[10].year = 8398;
dateDifference[10].month = 11;
dateDifference[10].day = 30;
dateDifference[11].year = 2008;
dateDifference[12].year = 7991;
dateDifference[12].month = 11;
dateDifference[13].week = 416998;
dateDifference[13].day = 1;
/* Test Cases */
// Date Difference test cases
datetimeDifftest[0].startDate = date[0];
datetimeDifftest[0].endDate = date[3];
datetimeDifftest[0].dateDiff = dateDifference[10];
datetimeDifftest[1].startDate = date[0];
datetimeDifftest[1].endDate = date[2];
datetimeDifftest[1].dateDiff = dateDifference[5];
datetimeDifftest[2].startDate = date[0];
datetimeDifftest[2].endDate = date[2];
datetimeDifftest[2].dateDiff = dateDifference[4];
datetimeDifftest[3].startDate = date[0];
datetimeDifftest[3].endDate = date[2];
datetimeDifftest[3].dateDiff = dateDifference[3];
datetimeDifftest[4].startDate = date[14];
datetimeDifftest[4].endDate = date[7];
datetimeDifftest[4].dateDiff = dateDifference[7];
datetimeDifftest[5].startDate = date[14];
datetimeDifftest[5].endDate = date[7];
datetimeDifftest[5].dateDiff = dateDifference[8];
datetimeDifftest[6].startDate = date[11];
datetimeDifftest[6].endDate = date[8];
datetimeDifftest[6].dateDiff = dateDifference[9];
datetimeDifftest[7].startDate = date[13];
datetimeDifftest[7].endDate = date[0];
datetimeDifftest[7].dateDiff = dateDifference[12];
datetimeDifftest[8].startDate = date[13];
datetimeDifftest[8].endDate = date[0];
datetimeDifftest[8].dateDiff = dateDifference[13];
// Date Add Out of Bound test cases (Negative tests)
/*OutofBound*/ datetimeBoundAdd[0].startDate = date[1];
datetimeBoundAdd[0].endDate = date[0];
datetimeBoundAdd[0].dateDiff = dateDifference[2]; // on Add date[0] not used
/*OutofBound*/ datetimeBoundAdd[1].startDate = date[2];
datetimeBoundAdd[1].endDate = date[0];
datetimeBoundAdd[1].dateDiff = dateDifference[11]; // on Add date[0] not used
// Date Subtract Out of Bound test cases (Negative tests)
/*OutofBound*/ datetimeBoundSubtract[0].startDate = date[3];
datetimeBoundSubtract[0].endDate = date[0];
datetimeBoundSubtract[0].dateDiff = dateDifference[2]; // on subtract date[0] not used
/*OutofBound*/ datetimeBoundSubtract[1].startDate = date[14];
datetimeBoundSubtract[1].endDate = date[0];
datetimeBoundSubtract[1].dateDiff = dateDifference[11]; // on subtract date[0] not used
// Date Add test cases (Positive tests)
datetimeAddCase[0].startDate = date[13];
datetimeAddCase[0].endDate = date[7];
datetimeAddCase[0].dateDiff = dateDifference[6]; // add
datetimeAddCase[1].startDate = date[14];
datetimeAddCase[1].endDate = date[5];
datetimeAddCase[1].dateDiff = dateDifference[1]; // add
datetimeAddCase[2].startDate = date[13];
datetimeAddCase[2].endDate = date[6];
datetimeAddCase[2].dateDiff = dateDifference[1]; // add
// Date Subtract test cases (Positive tests)
datetimeSubtractCase[0].startDate = date[14];
datetimeSubtractCase[0].endDate = date[7];
datetimeSubtractCase[0].dateDiff = dateDifference[6]; // subtract
datetimeSubtractCase[1].startDate = date[6];
datetimeSubtractCase[1].endDate = date[11];
datetimeSubtractCase[1].dateDiff = dateDifference[1]; // subtract
datetimeSubtractCase[2].startDate = date[9];
datetimeSubtractCase[2].endDate = date[12];
datetimeSubtractCase[2].dateDiff = dateDifference[1]; // subtract
}
/* Duration Between Two Date Tests -- Timediff obtained after calculation should be checked to be identical */
TEST_METHOD(TestDateDiff)
{
// TODO - MSFT 10331900, fix this test
// for (int testIndex = 0; testIndex < c_diffTestCase; testIndex++)
//{
// DateDifference diff;
// DateUnit dateOutputFormat;
// switch (testIndex)
// {
// case 0:
// case 2:
// dateOutputFormat = DateUnit::Year | DateUnit::Month | DateUnit::Day;
// break;
// case 1:
// dateOutputFormat = DateUnit::Day;
// break;
// case 3:
// case 8:
// dateOutputFormat = DateUnit::Week | DateUnit::Day;
// break;
// case 7:
// dateOutputFormat = DateUnit::Year | DateUnit::Month | DateUnit::Day;
// break;
// case 4:
// case 6:
// dateOutputFormat = DateUnit::Month | DateUnit::Day;
// break;
// case 5:
// dateOutputFormat = DateUnit::Day;
// break;
// }
// // Calculate the difference
// m_DateCalcEngine->TryGetDateDifference(DateUtils::SystemTimeToDateTime(datetimeDifftest[testIndex].startDate),
// DateUtils::SystemTimeToDateTime(datetimeDifftest[testIndex].endDate), dateOutputFormat, &diff);
// // Assert for the result
// bool areIdentical = true;
// if (diff.year != datetimeDifftest[testIndex].dateDiff.year ||
// diff.month != datetimeDifftest[testIndex].dateDiff.month ||
// diff.week != datetimeDifftest[testIndex].dateDiff.week ||
// diff.day != datetimeDifftest[testIndex].dateDiff.day)
// {
// areIdentical = false;
// }
// VERIFY_IS_TRUE(areIdentical);
//}
}
/*Add Out of bound Tests*/
TEST_METHOD(TestAddOob)
{
// TODO - MSFT 10331900, fix this test
// for (int testIndex = 0; testIndex< c_numAddOobDate; testIndex++)
//{
// DateTime endDate;
// // Add Duration
// bool isValid = m_DateCalcEngine->AddDuration(DateUtils::SystemTimeToDateTime(datetimeBoundAdd[testIndex].startDate),
// datetimeBoundAdd[testIndex].dateDiff, &endDate);
// // Assert for the result
// VERIFY_IS_FALSE(isValid);
//}
}
/*Subtract Out of bound Tests*/
TEST_METHOD(TestSubtractOob)
{
for (int testIndex = 0; testIndex < c_numSubtractOobDate; testIndex++)
{
// Subtract Duration
auto endDate = m_DateCalcEngine->SubtractDuration(
DateUtils::SystemTimeToDateTime(datetimeBoundSubtract[testIndex].startDate), datetimeBoundSubtract[testIndex].dateDiff);
// Assert for the result
VERIFY_IS_NULL(endDate);
}
}
// Add Tests
TEST_METHOD(TestAddition)
{
// TODO - MSFT 10331900, fix this test
// for (int testIndex = 0; testIndex < c_addCases; testIndex++)
//{
// DateTime endDate;
// // Add Duration
// bool isValid = m_DateCalcEngine->AddDuration(DateUtils::SystemTimeToDateTime(datetimeAddCase[testIndex].startDate),
// datetimeAddCase[testIndex].dateDiff, &endDate);
// // Assert for the result
// VERIFY_IS_TRUE(isValid);
// SYSTEMTIME systemTime = DateUtils::DateTimeToSystemTime(endDate);
// if (systemTime.wYear != datetimeAddCase[testIndex].endDate.wYear ||
// systemTime.wMonth != datetimeAddCase[testIndex].endDate.wMonth ||
// systemTime.wDay != datetimeAddCase[testIndex].endDate.wDay ||
// systemTime.wDayOfWeek != datetimeAddCase[testIndex].endDate.wDayOfWeek)
// {
// isValid = false;
// }
// VERIFY_IS_TRUE(isValid);
//}
}
// Subtract Tests
TEST_METHOD(TestSubtraction)
{
// TODO - MSFT 10331900, fix this test
// for (int testIndex = 0; testIndex < c_subtractCases; testIndex++)
//{
// DateTime endDate;
// // Subtract Duration
// bool isValid = m_DateCalcEngine->SubtractDuration(DateUtils::SystemTimeToDateTime(datetimeSubtractCase[testIndex].startDate),
// datetimeSubtractCase[testIndex].dateDiff, &endDate);
// // assert for the result
// VERIFY_IS_TRUE(isValid);
// SYSTEMTIME systemTime = DateUtils::DateTimeToSystemTime(endDate);
// if (systemTime.wYear != datetimeSubtractCase[testIndex].endDate.wYear ||
// systemTime.wMonth != datetimeSubtractCase[testIndex].endDate.wMonth ||
// systemTime.wDay != datetimeSubtractCase[testIndex].endDate.wDay ||
// systemTime.wDayOfWeek != datetimeSubtractCase[testIndex].endDate.wDayOfWeek)
// {
// isValid = false;
// }
// VERIFY_IS_TRUE(isValid);
//}
}
};
TEST_CLASS(DateCalculatorViewModelTests){ public: TEST_CLASS_INITIALIZE(TestClassSetup){ /* Test Case Data */
// Dates - DD.MM.YYYY
/*31.12.9999*/ date[0].wYear = 9999;
date[0].wMonth = 12;
date[0].wDayOfWeek = 5;
date[0].wDay = 31;
@@ -272,368 +634,6 @@ namespace DateCalculationUnitTests
datetimeSubtractCase[2].dateDiff = dateDifference[1]; // subtract
}
/* Duration Between Two Date Tests -- Timediff obtained after calculation should be checked to be identical */
TEST_METHOD(TestDateDiff)
{
// TODO - MSFT 10331900, fix this test
// for (int testIndex = 0; testIndex < c_diffTestCase; testIndex++)
//{
// DateDifference diff;
// DateUnit dateOutputFormat;
// switch (testIndex)
// {
// case 0:
// case 2:
// dateOutputFormat = DateUnit::Year | DateUnit::Month | DateUnit::Day;
// break;
// case 1:
// dateOutputFormat = DateUnit::Day;
// break;
// case 3:
// case 8:
// dateOutputFormat = DateUnit::Week | DateUnit::Day;
// break;
// case 7:
// dateOutputFormat = DateUnit::Year | DateUnit::Month | DateUnit::Day;
// break;
// case 4:
// case 6:
// dateOutputFormat = DateUnit::Month | DateUnit::Day;
// break;
// case 5:
// dateOutputFormat = DateUnit::Day;
// break;
// }
// // Calculate the difference
// m_DateCalcEngine->TryGetDateDifference(DateUtils::SystemTimeToDateTime(datetimeDifftest[testIndex].startDate),
// DateUtils::SystemTimeToDateTime(datetimeDifftest[testIndex].endDate), dateOutputFormat, &diff);
// // Assert for the result
// bool areIdentical = true;
// if (diff.year != datetimeDifftest[testIndex].dateDiff.year ||
// diff.month != datetimeDifftest[testIndex].dateDiff.month ||
// diff.week != datetimeDifftest[testIndex].dateDiff.week ||
// diff.day != datetimeDifftest[testIndex].dateDiff.day)
// {
// areIdentical = false;
// }
// VERIFY_IS_TRUE(areIdentical);
//}
}
/*Add Out of bound Tests*/
TEST_METHOD(TestAddOob)
{
// TODO - MSFT 10331900, fix this test
// for (int testIndex = 0; testIndex< c_numAddOobDate; testIndex++)
//{
// DateTime endDate;
// // Add Duration
// bool isValid = m_DateCalcEngine->AddDuration(DateUtils::SystemTimeToDateTime(datetimeBoundAdd[testIndex].startDate),
// datetimeBoundAdd[testIndex].dateDiff, &endDate);
// // Assert for the result
// VERIFY_IS_FALSE(isValid);
//}
}
/*Subtract Out of bound Tests*/
TEST_METHOD(TestSubtractOob)
{
for (int testIndex = 0; testIndex < c_numSubtractOobDate; testIndex++)
{
// Subtract Duration
auto endDate = m_DateCalcEngine->SubtractDuration(
DateUtils::SystemTimeToDateTime(datetimeBoundSubtract[testIndex].startDate), datetimeBoundSubtract[testIndex].dateDiff);
// Assert for the result
VERIFY_IS_NULL(endDate);
}
}
// Add Tests
TEST_METHOD(TestAddition)
{
// TODO - MSFT 10331900, fix this test
// for (int testIndex = 0; testIndex < c_addCases; testIndex++)
//{
// DateTime endDate;
// // Add Duration
// bool isValid = m_DateCalcEngine->AddDuration(DateUtils::SystemTimeToDateTime(datetimeAddCase[testIndex].startDate),
// datetimeAddCase[testIndex].dateDiff, &endDate);
// // Assert for the result
// VERIFY_IS_TRUE(isValid);
// SYSTEMTIME systemTime = DateUtils::DateTimeToSystemTime(endDate);
// if (systemTime.wYear != datetimeAddCase[testIndex].endDate.wYear ||
// systemTime.wMonth != datetimeAddCase[testIndex].endDate.wMonth ||
// systemTime.wDay != datetimeAddCase[testIndex].endDate.wDay ||
// systemTime.wDayOfWeek != datetimeAddCase[testIndex].endDate.wDayOfWeek)
// {
// isValid = false;
// }
// VERIFY_IS_TRUE(isValid);
//}
}
// Subtract Tests
TEST_METHOD(TestSubtraction)
{
// TODO - MSFT 10331900, fix this test
// for (int testIndex = 0; testIndex < c_subtractCases; testIndex++)
//{
// DateTime endDate;
// // Subtract Duration
// bool isValid = m_DateCalcEngine->SubtractDuration(DateUtils::SystemTimeToDateTime(datetimeSubtractCase[testIndex].startDate),
// datetimeSubtractCase[testIndex].dateDiff, &endDate);
// // assert for the result
// VERIFY_IS_TRUE(isValid);
// SYSTEMTIME systemTime = DateUtils::DateTimeToSystemTime(endDate);
// if (systemTime.wYear != datetimeSubtractCase[testIndex].endDate.wYear ||
// systemTime.wMonth != datetimeSubtractCase[testIndex].endDate.wMonth ||
// systemTime.wDay != datetimeSubtractCase[testIndex].endDate.wDay ||
// systemTime.wDayOfWeek != datetimeSubtractCase[testIndex].endDate.wDayOfWeek)
// {
// isValid = false;
// }
// VERIFY_IS_TRUE(isValid);
//}
}
};
TEST_CLASS(DateCalculatorViewModelTests){ public: TEST_CLASS_INITIALIZE(TestClassSetup){ /* Test Case Data */
// Dates - DD.MM.YYYY
/*31.12.9999*/ date[0].wYear = 9999;
date[0].wMonth = 12;
date[0].wDayOfWeek = 5;
date[0].wDay = 31;
date[0].wHour = 0;
date[0].wMinute = 0;
date[0].wSecond = 0;
date[0].wMilliseconds = 0;
/*30.12.9999*/ date[1].wYear = 9999;
date[1].wMonth = 12;
date[1].wDayOfWeek = 4;
date[1].wDay = 30;
date[1].wHour = 0;
date[1].wMinute = 0;
date[1].wSecond = 0;
date[1].wMilliseconds = 0;
/*31.12.9998*/ date[2].wYear = 9998;
date[2].wMonth = 12;
date[2].wDayOfWeek = 4;
date[2].wDay = 31;
date[2].wHour = 0;
date[2].wMinute = 0;
date[2].wSecond = 0;
date[2].wMilliseconds = 0;
/*01.01.1601*/ date[3].wYear = 1601;
date[3].wMonth = 1;
date[3].wDayOfWeek = 1;
date[3].wDay = 1;
date[3].wHour = 0;
date[3].wMinute = 0;
date[3].wSecond = 0;
date[3].wMilliseconds = 0;
/*02.01.1601*/ date[4].wYear = 1601;
date[4].wMonth = 1;
date[4].wDayOfWeek = 2;
date[4].wDay = 2;
date[4].wHour = 0;
date[4].wMinute = 0;
date[4].wSecond = 0;
date[4].wMilliseconds = 0;
/*10.05.2008*/ date[5].wYear = 2008;
date[5].wMonth = 5;
date[5].wDayOfWeek = 6;
date[5].wDay = 10;
date[5].wHour = 0;
date[5].wMinute = 0;
date[5].wSecond = 0;
date[5].wMilliseconds = 0;
/*10.03.2008*/ date[6].wYear = 2008;
date[6].wMonth = 3;
date[6].wDayOfWeek = 1;
date[6].wDay = 10;
date[6].wHour = 0;
date[6].wMinute = 0;
date[6].wSecond = 0;
date[6].wMilliseconds = 0;
/*29.02.2008*/ date[7].wYear = 2008;
date[7].wMonth = 2;
date[7].wDayOfWeek = 5;
date[7].wDay = 29;
date[7].wHour = 0;
date[7].wMinute = 0;
date[7].wSecond = 0;
date[7].wMilliseconds = 0;
/*28.02.2007*/ date[8].wYear = 2007;
date[8].wMonth = 2;
date[8].wDayOfWeek = 3;
date[8].wDay = 28;
date[8].wHour = 0;
date[8].wMinute = 0;
date[8].wSecond = 0;
date[8].wMilliseconds = 0;
/*10.03.2007*/ date[9].wYear = 2007;
date[9].wMonth = 3;
date[9].wDayOfWeek = 6;
date[9].wDay = 10;
date[9].wHour = 0;
date[9].wMinute = 0;
date[9].wSecond = 0;
date[9].wMilliseconds = 0;
/*10.05.2007*/ date[10].wYear = 2007;
date[10].wMonth = 5;
date[10].wDayOfWeek = 4;
date[10].wDay = 10;
date[10].wHour = 0;
date[10].wMinute = 0;
date[10].wSecond = 0;
date[10].wMilliseconds = 0;
/*29.01.2008*/ date[11].wYear = 2008;
date[11].wMonth = 1;
date[11].wDayOfWeek = 2;
date[11].wDay = 29;
date[11].wHour = 0;
date[11].wMinute = 0;
date[11].wSecond = 0;
date[11].wMilliseconds = 0;
/*28.01.2007*/ date[12].wYear = 2007;
date[12].wMonth = 1;
date[12].wDayOfWeek = 0;
date[12].wDay = 28;
date[12].wHour = 0;
date[12].wMinute = 0;
date[12].wSecond = 0;
date[12].wMilliseconds = 0;
/*31.01.2008*/ date[13].wYear = 2008;
date[13].wMonth = 1;
date[13].wDayOfWeek = 4;
date[13].wDay = 31;
date[13].wHour = 0;
date[13].wMinute = 0;
date[13].wSecond = 0;
date[13].wMilliseconds = 0;
/*31.03.2008*/ date[14].wYear = 2008;
date[14].wMonth = 3;
date[14].wDayOfWeek = 1;
date[14].wDay = 31;
date[14].wHour = 0;
date[14].wMinute = 0;
date[14].wSecond = 0;
date[14].wMilliseconds = 0;
// Date Differences
dateDifference[0].year = 1;
dateDifference[0].month = 1;
dateDifference[1].month = 1;
dateDifference[1].day = 10;
dateDifference[2].day = 2;
/*date[2]-[0]*/ dateDifference[3].week = 52;
dateDifference[3].day = 1;
/*date[2]-[0]*/ dateDifference[4].year = 1;
dateDifference[5].day = 365;
dateDifference[6].month = 1;
dateDifference[7].month = 1;
dateDifference[7].day = 2;
dateDifference[8].day = 31;
dateDifference[9].month = 11;
dateDifference[9].day = 1;
dateDifference[10].year = 8398;
dateDifference[10].month = 11;
dateDifference[10].day = 30;
dateDifference[11].year = 2008;
dateDifference[12].year = 7991;
dateDifference[12].month = 11;
dateDifference[13].week = 416998;
dateDifference[13].day = 1;
/* Test Cases */
// Date Difference test cases
datetimeDifftest[0].startDate = date[0];
datetimeDifftest[0].endDate = date[3];
datetimeDifftest[0].dateDiff = dateDifference[10];
datetimeDifftest[1].startDate = date[0];
datetimeDifftest[1].endDate = date[2];
datetimeDifftest[1].dateDiff = dateDifference[5];
datetimeDifftest[2].startDate = date[0];
datetimeDifftest[2].endDate = date[2];
datetimeDifftest[2].dateDiff = dateDifference[4];
datetimeDifftest[3].startDate = date[0];
datetimeDifftest[3].endDate = date[2];
datetimeDifftest[3].dateDiff = dateDifference[3];
datetimeDifftest[4].startDate = date[14];
datetimeDifftest[4].endDate = date[7];
datetimeDifftest[4].dateDiff = dateDifference[7];
datetimeDifftest[5].startDate = date[14];
datetimeDifftest[5].endDate = date[7];
datetimeDifftest[5].dateDiff = dateDifference[8];
datetimeDifftest[6].startDate = date[11];
datetimeDifftest[6].endDate = date[8];
datetimeDifftest[6].dateDiff = dateDifference[9];
datetimeDifftest[7].startDate = date[13];
datetimeDifftest[7].endDate = date[0];
datetimeDifftest[7].dateDiff = dateDifference[12];
datetimeDifftest[8].startDate = date[13];
datetimeDifftest[8].endDate = date[0];
datetimeDifftest[8].dateDiff = dateDifference[13];
// Date Add Out of Bound test cases (Negative tests)
/*OutofBound*/ datetimeBoundAdd[0].startDate = date[1];
datetimeBoundAdd[0].endDate = date[0];
datetimeBoundAdd[0].dateDiff = dateDifference[2]; // on Add date[0] not used
/*OutofBound*/ datetimeBoundAdd[1].startDate = date[2];
datetimeBoundAdd[1].endDate = date[0];
datetimeBoundAdd[1].dateDiff = dateDifference[11]; // on Add date[0] not used
// Date Subtract Out of Bound test cases (Negative tests)
/*OutofBound*/ datetimeBoundSubtract[0].startDate = date[3];
datetimeBoundSubtract[0].endDate = date[0];
datetimeBoundSubtract[0].dateDiff = dateDifference[2]; // on subtract date[0] not used
/*OutofBound*/ datetimeBoundSubtract[1].startDate = date[14];
datetimeBoundSubtract[1].endDate = date[0];
datetimeBoundSubtract[1].dateDiff = dateDifference[11]; // on subtract date[0] not used
// Date Add test cases (Positive tests)
datetimeAddCase[0].startDate = date[13];
datetimeAddCase[0].endDate = date[7];
datetimeAddCase[0].dateDiff = dateDifference[6]; // add
datetimeAddCase[1].startDate = date[14];
datetimeAddCase[1].endDate = date[5];
datetimeAddCase[1].dateDiff = dateDifference[1]; // add
datetimeAddCase[2].startDate = date[13];
datetimeAddCase[2].endDate = date[6];
datetimeAddCase[2].dateDiff = dateDifference[1]; // add
// Date Subtract test cases (Positive tests)
datetimeSubtractCase[0].startDate = date[14];
datetimeSubtractCase[0].endDate = date[7];
datetimeSubtractCase[0].dateDiff = dateDifference[6]; // subtract
datetimeSubtractCase[1].startDate = date[6];
datetimeSubtractCase[1].endDate = date[11];
datetimeSubtractCase[1].dateDiff = dateDifference[1]; // subtract
datetimeSubtractCase[2].startDate = date[9];
datetimeSubtractCase[2].endDate = date[12];
datetimeSubtractCase[2].dateDiff = dateDifference[1]; // subtract
}
TEST_METHOD(DateCalcViewModelInitializationTest)
{
auto viewModel = ref new DateCalculatorViewModel();

View File

@@ -0,0 +1,22 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
#include "pch.h"
#include <CppUnitTest.h>
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace CalculatorUnitTests
{
BEGIN_TEST_MODULE_ATTRIBUTE()
TEST_MODULE_ATTRIBUTE(L"APPX:CertificateFileName", L"CalculatorUnitTests.cer:TrustedPeople")
END_TEST_MODULE_ATTRIBUTE()
TEST_MODULE_INITIALIZE(ModuleSetup)
{
}
TEST_MODULE_CLEANUP(ModuleCleanup)
{
}
}

View File

@@ -97,7 +97,7 @@ namespace CalculatorUnitTests
// Boundary testing
VERIFY_ARE_EQUAL(ViewMode::None, NavCategory::Deserialize(ref new Box<int>(-1)));
VERIFY_ARE_EQUAL(ViewMode::None, NavCategory::Deserialize(ref new Box<int>(17)));
VERIFY_ARE_EQUAL(ViewMode::None, NavCategory::Deserialize(ref new Box<int>(18)));
}
void NavCategoryUnitTests::IsValidViewMode_AllValid()
@@ -106,6 +106,7 @@ namespace CalculatorUnitTests
VERIFY_IS_TRUE(NavCategory::IsValidViewMode(ViewMode::Scientific));
VERIFY_IS_TRUE(NavCategory::IsValidViewMode(ViewMode::Programmer));
VERIFY_IS_TRUE(NavCategory::IsValidViewMode(ViewMode::Date));
VERIFY_IS_TRUE(NavCategory::IsValidViewMode(ViewMode::Graphing));
VERIFY_IS_TRUE(NavCategory::IsValidViewMode(ViewMode::Currency));
VERIFY_IS_TRUE(NavCategory::IsValidViewMode(ViewMode::Volume));
VERIFY_IS_TRUE(NavCategory::IsValidViewMode(ViewMode::Length));
@@ -125,9 +126,9 @@ namespace CalculatorUnitTests
{
VERIFY_IS_FALSE(NavCategory::IsValidViewMode(ViewMode::None));
// There are 17 total options so int 17 should be the first invalid
VERIFY_IS_TRUE(NavCategory::IsValidViewMode(static_cast<ViewMode>(16)));
VERIFY_IS_FALSE(NavCategory::IsValidViewMode(static_cast<ViewMode>(17)));
// There are 18 total options so int 18 should be the first invalid
VERIFY_IS_TRUE(NavCategory::IsValidViewMode(static_cast<ViewMode>(17)));
VERIFY_IS_FALSE(NavCategory::IsValidViewMode(static_cast<ViewMode>(18)));
// Also verify the lower bound
VERIFY_IS_TRUE(NavCategory::IsValidViewMode(static_cast<ViewMode>(0)));
@@ -141,6 +142,7 @@ namespace CalculatorUnitTests
VERIFY_IS_TRUE(NavCategory::IsCalculatorViewMode(ViewMode::Programmer));
VERIFY_IS_FALSE(NavCategory::IsCalculatorViewMode(ViewMode::Date));
VERIFY_IS_FALSE(NavCategory::IsCalculatorViewMode(ViewMode::Graphing));
VERIFY_IS_FALSE(NavCategory::IsCalculatorViewMode(ViewMode::Currency));
VERIFY_IS_FALSE(NavCategory::IsCalculatorViewMode(ViewMode::Volume));
@@ -165,6 +167,8 @@ namespace CalculatorUnitTests
VERIFY_IS_TRUE(NavCategory::IsDateCalculatorViewMode(ViewMode::Date));
VERIFY_IS_FALSE(NavCategory::IsDateCalculatorViewMode(ViewMode::Graphing));
VERIFY_IS_FALSE(NavCategory::IsDateCalculatorViewMode(ViewMode::Currency));
VERIFY_IS_FALSE(NavCategory::IsDateCalculatorViewMode(ViewMode::Volume));
VERIFY_IS_FALSE(NavCategory::IsDateCalculatorViewMode(ViewMode::Length));
@@ -185,8 +189,8 @@ namespace CalculatorUnitTests
VERIFY_IS_FALSE(NavCategory::IsConverterViewMode(ViewMode::Standard));
VERIFY_IS_FALSE(NavCategory::IsConverterViewMode(ViewMode::Scientific));
VERIFY_IS_FALSE(NavCategory::IsConverterViewMode(ViewMode::Programmer));
VERIFY_IS_FALSE(NavCategory::IsConverterViewMode(ViewMode::Date));
VERIFY_IS_FALSE(NavCategory::IsConverterViewMode(ViewMode::Graphing));
VERIFY_IS_TRUE(NavCategory::IsConverterViewMode(ViewMode::Currency));
VERIFY_IS_TRUE(NavCategory::IsConverterViewMode(ViewMode::Volume));
@@ -209,6 +213,7 @@ namespace CalculatorUnitTests
VERIFY_ARE_EQUAL(StringReference(L"Scientific"), NavCategory::GetFriendlyName(ViewMode::Scientific));
VERIFY_ARE_EQUAL(StringReference(L"Programmer"), NavCategory::GetFriendlyName(ViewMode::Programmer));
VERIFY_ARE_EQUAL(StringReference(L"Date"), NavCategory::GetFriendlyName(ViewMode::Date));
VERIFY_ARE_EQUAL(StringReference(L"Graphing"), NavCategory::GetFriendlyName(ViewMode::Graphing));
VERIFY_ARE_EQUAL(StringReference(L"Currency"), NavCategory::GetFriendlyName(ViewMode::Currency));
VERIFY_ARE_EQUAL(StringReference(L"Volume"), NavCategory::GetFriendlyName(ViewMode::Volume));
VERIFY_ARE_EQUAL(StringReference(L"Length"), NavCategory::GetFriendlyName(ViewMode::Length));
@@ -232,6 +237,7 @@ namespace CalculatorUnitTests
VERIFY_ARE_EQUAL(CategoryGroupType::Calculator, NavCategory::GetGroupType(ViewMode::Scientific));
VERIFY_ARE_EQUAL(CategoryGroupType::Calculator, NavCategory::GetGroupType(ViewMode::Programmer));
VERIFY_ARE_EQUAL(CategoryGroupType::Calculator, NavCategory::GetGroupType(ViewMode::Date));
VERIFY_ARE_EQUAL(CategoryGroupType::Calculator, NavCategory::GetGroupType(ViewMode::Graphing));
VERIFY_ARE_EQUAL(CategoryGroupType::Converter, NavCategory::GetGroupType(ViewMode::Currency));
VERIFY_ARE_EQUAL(CategoryGroupType::Converter, NavCategory::GetGroupType(ViewMode::Volume));
@@ -251,12 +257,29 @@ namespace CalculatorUnitTests
void NavCategoryUnitTests::GetIndex()
{
// Index is the 0-based ordering of modes
vector<ViewMode> orderedModes = { ViewMode::Standard, ViewMode::Scientific, ViewMode::Programmer, ViewMode::Date, ViewMode::Currency,
ViewMode::Volume, ViewMode::Length, ViewMode::Weight, ViewMode::Temperature, ViewMode::Energy,
ViewMode::Area, ViewMode::Speed, ViewMode::Time, ViewMode::Power, ViewMode::Data,
ViewMode::Pressure, ViewMode::Angle };
ViewMode orderedModes[] = {
ViewMode::Standard,
ViewMode::Scientific,
ViewMode::Graphing,
ViewMode::Programmer,
ViewMode::Date,
ViewMode::Currency,
ViewMode::Volume,
ViewMode::Length,
ViewMode::Weight,
ViewMode::Temperature,
ViewMode::Energy,
ViewMode::Area,
ViewMode::Speed,
ViewMode::Time,
ViewMode::Power,
ViewMode::Data,
ViewMode::Pressure,
ViewMode::Angle
};
for (size_t index = 0; index < orderedModes.size(); index++)
auto orderedModesSize = size(orderedModes);
for (size_t index = 0; index < orderedModesSize; index++)
{
ViewMode mode = orderedModes[index];
VERIFY_ARE_EQUAL(index, (size_t)NavCategory::GetIndex(mode));
@@ -268,12 +291,13 @@ namespace CalculatorUnitTests
void NavCategoryUnitTests::GetPosition()
{
// Position is the 1-based ordering of modes
vector<ViewMode> orderedModes = { ViewMode::Standard, ViewMode::Scientific, ViewMode::Programmer, ViewMode::Date, ViewMode::Currency,
ViewMode::Volume, ViewMode::Length, ViewMode::Weight, ViewMode::Temperature, ViewMode::Energy,
ViewMode::Area, ViewMode::Speed, ViewMode::Time, ViewMode::Power, ViewMode::Data,
ViewMode::Pressure, ViewMode::Angle };
vector<ViewMode> orderedModes = { ViewMode::Standard, ViewMode::Scientific, ViewMode::Graphing, ViewMode::Programmer, ViewMode::Date,
ViewMode::Currency, ViewMode::Volume, ViewMode::Length, ViewMode::Weight, ViewMode::Temperature,
ViewMode::Energy, ViewMode::Area, ViewMode::Speed, ViewMode::Time, ViewMode::Power,
ViewMode::Data, ViewMode::Pressure, ViewMode::Angle };
for (size_t pos = 1; pos <= orderedModes.size(); pos++)
auto orderedModesSize = size(orderedModes);
for (size_t pos = 1; pos <= orderedModesSize; pos++)
{
ViewMode mode = orderedModes[pos - 1];
VERIFY_ARE_EQUAL(pos, (size_t)NavCategory::GetPosition(mode));
@@ -295,8 +319,9 @@ namespace CalculatorUnitTests
{
VERIFY_ARE_EQUAL(0, NavCategory::GetIndexInGroup(ViewMode::Standard, CategoryGroupType::Calculator));
VERIFY_ARE_EQUAL(1, NavCategory::GetIndexInGroup(ViewMode::Scientific, CategoryGroupType::Calculator));
VERIFY_ARE_EQUAL(2, NavCategory::GetIndexInGroup(ViewMode::Programmer, CategoryGroupType::Calculator));
VERIFY_ARE_EQUAL(3, NavCategory::GetIndexInGroup(ViewMode::Date, CategoryGroupType::Calculator));
VERIFY_ARE_EQUAL(2, NavCategory::GetIndexInGroup(ViewMode::Graphing, CategoryGroupType::Calculator));
VERIFY_ARE_EQUAL(3, NavCategory::GetIndexInGroup(ViewMode::Programmer, CategoryGroupType::Calculator));
VERIFY_ARE_EQUAL(4, NavCategory::GetIndexInGroup(ViewMode::Date, CategoryGroupType::Calculator));
VERIFY_ARE_EQUAL(0, NavCategory::GetIndexInGroup(ViewMode::Currency, CategoryGroupType::Converter));
VERIFY_ARE_EQUAL(1, NavCategory::GetIndexInGroup(ViewMode::Volume, CategoryGroupType::Converter));
@@ -320,7 +345,17 @@ namespace CalculatorUnitTests
{
VERIFY_ARE_EQUAL(ViewMode::Standard, NavCategory::GetViewModeForVirtualKey(MyVirtualKey::Number1));
VERIFY_ARE_EQUAL(ViewMode::Scientific, NavCategory::GetViewModeForVirtualKey(MyVirtualKey::Number2));
VERIFY_ARE_EQUAL(ViewMode::Programmer, NavCategory::GetViewModeForVirtualKey(MyVirtualKey::Number3));
if (Windows::Foundation::Metadata::ApiInformation::IsMethodPresent("Windows.UI.Text.RichEditTextDocument", "GetMath"))
{
VERIFY_ARE_EQUAL(ViewMode::Graphing, NavCategory::GetViewModeForVirtualKey(MyVirtualKey::Number3));
VERIFY_ARE_EQUAL(ViewMode::Programmer, NavCategory::GetViewModeForVirtualKey(MyVirtualKey::Number4));
VERIFY_ARE_EQUAL(ViewMode::Date, NavCategory::GetViewModeForVirtualKey(MyVirtualKey::Number5));
}
else
{
VERIFY_ARE_EQUAL(ViewMode::Programmer, NavCategory::GetViewModeForVirtualKey(MyVirtualKey::Number3));
VERIFY_ARE_EQUAL(ViewMode::Date, NavCategory::GetViewModeForVirtualKey(MyVirtualKey::Number4));
}
}
TEST_CLASS(NavCategoryGroupUnitTests)
@@ -329,14 +364,13 @@ namespace CalculatorUnitTests
TEST_METHOD(CreateNavCategoryGroup);
private:
void ValidateNavCategory(IObservableVector<NavCategory ^> ^ categories, unsigned int index, ViewMode expectedMode, int expectedPosition)
void ValidateNavCategory(IObservableVector<NavCategory ^> ^ categories, unsigned int index, ViewMode expectedMode)
{
VERIFY_IS_LESS_THAN(0u, categories->Size);
VERIFY_IS_GREATER_THAN(categories->Size, index);
NavCategory ^ category = categories->GetAt(index);
VERIFY_ARE_EQUAL(expectedMode, category->Mode);
VERIFY_ARE_EQUAL(expectedPosition, category->Position);
}
};
@@ -349,30 +383,39 @@ namespace CalculatorUnitTests
NavCategoryGroup ^ calculatorGroup = menuOptions->GetAt(0);
VERIFY_ARE_EQUAL(CategoryGroupType::Calculator, calculatorGroup->GroupType);
IObservableVector<NavCategory ^> ^ calculatorCategories = calculatorGroup->Categories;
VERIFY_ARE_EQUAL(4, calculatorCategories->Size);
ValidateNavCategory(calculatorCategories, 0u, ViewMode::Standard, 1);
ValidateNavCategory(calculatorCategories, 1u, ViewMode::Scientific, 2);
ValidateNavCategory(calculatorCategories, 2u, ViewMode::Programmer, 3);
ValidateNavCategory(calculatorCategories, 3u, ViewMode::Date, 4);
IObservableVector<NavCategory^>^ calculatorCategories = calculatorGroup->Categories;
VERIFY_ARE_EQUAL(5, calculatorCategories->Size);
ValidateNavCategory(calculatorCategories, 0u, ViewMode::Standard);
ValidateNavCategory(calculatorCategories, 1u, ViewMode::Scientific);
if (Windows::Foundation::Metadata::ApiInformation::IsMethodPresent("Windows.UI.Text.RichEditTextDocument", "GetMath"))
{
ValidateNavCategory(calculatorCategories, 2u, ViewMode::Graphing);
ValidateNavCategory(calculatorCategories, 3u, ViewMode::Programmer);
ValidateNavCategory(calculatorCategories, 4u, ViewMode::Date);
}
else
{
ValidateNavCategory(calculatorCategories, 2u, ViewMode::Programmer);
ValidateNavCategory(calculatorCategories, 3u, ViewMode::Date);
}
NavCategoryGroup ^ converterGroup = menuOptions->GetAt(1);
VERIFY_ARE_EQUAL(CategoryGroupType::Converter, converterGroup->GroupType);
IObservableVector<NavCategory ^> ^ converterCategories = converterGroup->Categories;
VERIFY_ARE_EQUAL(13, converterCategories->Size);
ValidateNavCategory(converterCategories, 0u, ViewMode::Currency, 5);
ValidateNavCategory(converterCategories, 1u, ViewMode::Volume, 6);
ValidateNavCategory(converterCategories, 2u, ViewMode::Length, 7);
ValidateNavCategory(converterCategories, 3u, ViewMode::Weight, 8);
ValidateNavCategory(converterCategories, 4u, ViewMode::Temperature, 9);
ValidateNavCategory(converterCategories, 5u, ViewMode::Energy, 10);
ValidateNavCategory(converterCategories, 6u, ViewMode::Area, 11);
ValidateNavCategory(converterCategories, 7u, ViewMode::Speed, 12);
ValidateNavCategory(converterCategories, 8u, ViewMode::Time, 13);
ValidateNavCategory(converterCategories, 9u, ViewMode::Power, 14);
ValidateNavCategory(converterCategories, 10u, ViewMode::Data, 15);
ValidateNavCategory(converterCategories, 11u, ViewMode::Pressure, 16);
ValidateNavCategory(converterCategories, 12u, ViewMode::Angle, 17);
ValidateNavCategory(converterCategories, 0u, ViewMode::Currency);
ValidateNavCategory(converterCategories, 1u, ViewMode::Volume);
ValidateNavCategory(converterCategories, 2u, ViewMode::Length);
ValidateNavCategory(converterCategories, 3u, ViewMode::Weight);
ValidateNavCategory(converterCategories, 4u, ViewMode::Temperature);
ValidateNavCategory(converterCategories, 5u, ViewMode::Energy);
ValidateNavCategory(converterCategories, 6u, ViewMode::Area);
ValidateNavCategory(converterCategories, 7u, ViewMode::Speed);
ValidateNavCategory(converterCategories, 8u, ViewMode::Time);
ValidateNavCategory(converterCategories, 9u, ViewMode::Power);
ValidateNavCategory(converterCategories, 10u, ViewMode::Data);
ValidateNavCategory(converterCategories, 11u, ViewMode::Pressure);
ValidateNavCategory(converterCategories, 12u, ViewMode::Angle);
}
}

View File

@@ -0,0 +1,14 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by CalculatorUnitTests_VS.rc
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 101
#define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1001
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif