// This is the main project file for VC++ application project
// generated using an Application Wizard.
#include "stdafx.h"
using namespace Acf;
bool TestParsing(NumberStyles style, Array<StringPtr>* tests, Array<int>* results)
{
bool ret = true;
for (int i = 0; i < tests->Length; i++)
{
int n = Int32::Parse(tests->Item[i], style);
if (n != results->Item[i])
{
Console::WriteLine(L"Error! {0}", tests->Item[i]);
ret = false;
}
}
return ret;
}
int _tmain()
{
RefPtr<Array<int> > results = Array<int>::Build(
Int32::MinValue,
Int32::MaxValue,
-1000,
-99,
-1,
0,
1,
99,
1000
);
//
// Currency
//
RefPtr<Array<StringPtr> > currencyTests = Array<StringPtr>::Build(
str(L"($2,147,483,648.00)"),
str(L"$2,147,483,647.00"),
str(L"($1,000.00)"),
str(L"($99.00)"),
str(L"($1.00)"),
str(L"$0.00"),
str(L"$1.00"),
str(L"$99.00"),
str(L"$1,000.00")
);
Console::WriteLine(L"Test Currency:");
TestParsing(NumberStyles::Currency, currencyTests, results);
Console::WriteLine();
//
// Integer
//
RefPtr<Array<StringPtr> > integerTests = Array<StringPtr>::Build(
str(L"-2147483648"),
str(L"2147483647"),
str(L"-1000"),
str(L"-99"),
str(L"-1"),
str(L"0"),
str(L"1"),
str(L"99"),
str(L"1000")
);
Console::WriteLine(L"Test Integer:");
TestParsing(NumberStyles::Integer, integerTests, results);
Console::WriteLine();
//
// Number
//
RefPtr<Array<StringPtr> > numberTests = Array<StringPtr>::Build(
str(L"-2,147,483,648.00"),
str(L"2,147,483,647.00"),
str(L"-1,000.00"),
str(L"-99.00"),
str(L"-1.00"),
str(L"0.00"),
str(L"1.00"),
str(L"99.00"),
str(L"1,000.00")
);
Console::WriteLine(L"Test Number:");
TestParsing(NumberStyles::Number, numberTests, results);
Console::WriteLine();
//
// HexNumber
//
RefPtr<Array<StringPtr> > hexadecimalTests = Array<StringPtr>::Build(
str(L"80000000"),
str(L"7FFFFFFF"),
str(L"FFFFFC18"),
str(L"FFFFFF9D"),
str(L"FFFFFFFF"),
str(L"0"),
str(L"1"),
str(L"63"),
str(L"3E8")
);
Console::WriteLine(L"Test HexNumber:");
TestParsing(NumberStyles::HexNumber, hexadecimalTests, results);
Console::WriteLine();
return 0;
}