using CppSharp.Utils; using NUnit.Framework; using STL; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices; public class STLTests : GeneratorTestFixture { [Test] public void TestVectors() { var vectors = new STL.TestVectors(); var sum = vectors.SumIntVector(new List { 1, 2, 3 }); Assert.AreEqual(sum, 6); var list = vectors.GetIntVector(); Assert.True(list.SequenceEqual(new List { 2, 3, 4 })); var ptrList = vectors.IntPtrVector; var intList = ptrList.Select(ptr => Marshal.ReadInt32(ptr)); Assert.True(intList.SequenceEqual(new List { 2, 3, 4 })); var wrapperList = new List(); for (int i = 0; i < 3; i++) wrapperList.Add(new IntWrapper() { Value = i }); vectors.IntWrapperVector = wrapperList; wrapperList = vectors.IntWrapperVector; for (int i = 0; i < 3; i++) Assert.AreEqual(i, wrapperList[i].Value); for (int i = 0; i < 3; i++) wrapperList[i].Value += i; vectors.IntWrapperPtrVector = wrapperList; wrapperList = vectors.IntWrapperPtrVector; for (int i = 0; i < 3; i++) Assert.AreEqual(i * 2, wrapperList[i].Value); var valueTypeWrapperList = new List(); for (int i = 0; i < 3; i++) valueTypeWrapperList.Add(new IntWrapperValueType() { Value = i }); vectors.IntWrapperValueTypeVector = valueTypeWrapperList; valueTypeWrapperList = vectors.IntWrapperValueTypeVector; for (int i = 0; i < 3; i++) Assert.AreEqual(i, valueTypeWrapperList[i].Value); } [Test] public void TestOStream() { const string testString = "hello wörld"; var stringWriter = new StringWriter(); OStreamTest.WriteToOStream(stringWriter, testString); Assert.AreEqual(testString, stringWriter.ToString()); } }