Skip to content

Commit 73ed3cc

Browse files
Automatic translation result from C# to C++ is added.
1 parent 3cf20d2 commit 73ed3cc

File tree

3 files changed

+56
-4
lines changed

3 files changed

+56
-4
lines changed

.gitmodules

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
[submodule "RegularExpressions.Transformer.CSharpToCpp"]
2-
path = RegularExpressions.Transformer.CSharpToCpp
3-
url = https://github.com/linksplatform/RegularExpressions.Transformer.CSharpToCpp
41
[submodule "CSharpToCppTranslator"]
52
path = CSharpToCppTranslator
6-
url = https://github.com/linksplatform/CSharpToCppTranslator
3+
url = https://github.com/linksplatform/CSharpToCppTranslator/
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
namespace Platform::Data::Tests
2+
{
3+
TEST_CLASS(HybridTests)
4+
{
5+
public: TEST_METHOD(ObjectConstructorTest)
6+
{
7+
Assert::AreEqual(0, Hybrid<std::uint8_t>(unchecked((std::uint8_t)128)).AbsoluteValue);
8+
Assert::AreEqual(0, Hybrid<std::uint8_t>((void*)128).AbsoluteValue);
9+
Assert::AreEqual(1, Hybrid<std::uint8_t>(unchecked((std::uint8_t)-1)).AbsoluteValue);
10+
Assert::AreEqual(1, Hybrid<std::uint8_t>((void*)-1).AbsoluteValue);
11+
Assert::AreEqual(0, Hybrid<std::uint8_t>(unchecked((std::uint8_t)0)).AbsoluteValue);
12+
Assert::AreEqual(0, Hybrid<std::uint8_t>((void*)0).AbsoluteValue);
13+
Assert::AreEqual(1, Hybrid<std::uint8_t>(unchecked((std::uint8_t)1)).AbsoluteValue);
14+
Assert::AreEqual(1, Hybrid<std::uint8_t>((void*)1).AbsoluteValue);
15+
}
16+
};
17+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
namespace Platform::Data::Tests
2+
{
3+
TEST_CLASS(LinksConstantsTests)
4+
{
5+
public: TEST_METHOD(ConstructorTest)
6+
{
7+
auto constants = LinksConstants<std::uint64_t>(enableExternalReferencesSupport: true);
8+
Assert::AreEqual(Hybrid<std::uint64_t>.ExternalZero, constants.ExternalReferencesRange.Value.Minimum);
9+
Assert::AreEqual(std::numeric_limits<std::uint64_t>::max(), constants.ExternalReferencesRange.Value.Maximum);
10+
}
11+
12+
public: TEST_METHOD(ExternalReferencesTest)
13+
{
14+
TestExternalReferences<std::uint64_t, std::int64_t>();
15+
TestExternalReferences<std::uint32_t, std::int32_t>();
16+
TestExternalReferences<std::uint16_t, std::int16_t>();
17+
TestExternalReferences<std::uint8_t, std::int8_t>();
18+
}
19+
20+
private: static void TestExternalReferences<TUnsigned, TSigned>()
21+
{
22+
auto unsingedOne = 0(TUnsigned) + 1;
23+
auto converter = UncheckedConverter<TSigned, TUnsigned>.Default;
24+
auto half = converter.Convert(NumericType<TSigned>.MaxValue);
25+
LinksConstants<TUnsigned> constants = LinksConstants<TUnsigned>({unsingedOne, half}, {half + unsingedOne, NumericType<TUnsigned>.MaxValue});
26+
27+
auto minimum = Hybrid<TUnsigned>(0, isExternal: true);
28+
auto maximum = Hybrid<TUnsigned>(half, isExternal: true);
29+
30+
Assert::IsTrue(constants.IsExternalReference(minimum));
31+
Assert::IsTrue(minimum.IsExternal);
32+
Assert::IsFalse(minimum.IsInternal);
33+
Assert::IsTrue(constants.IsExternalReference(maximum));
34+
Assert::IsTrue(maximum.IsExternal);
35+
Assert::IsFalse(maximum.IsInternal);
36+
}
37+
};
38+
}

0 commit comments

Comments
 (0)