public unsafe void Size12_Equality(string buffer, string compareTo, bool expected) { // Manually copy in the buffer to allow testing non-null terminated FixedString.Size12 s = new FixedString.Size12(); fixed(char *c = buffer) { Buffer.MemoryCopy(c, (char *)&s, sizeof(FixedString.Size12) * sizeof(char), buffer.Length * sizeof(char)); } s.Buffer.EqualsOrdinal(compareTo).Should().Be(expected); }
public unsafe void Size12_NoNullOnBuffer() { FixedString.Size12 s = new FixedString.Size12(); char * f = (char *)&s; string value = "fizzlesticks"; fixed(char *c = value) { Buffer.MemoryCopy(c, f, 12 * sizeof(char), 12 * sizeof(char)); } s.Buffer.CreateString().Should().Be("fizzlesticks"); }
public unsafe void Size12_SetOver() { FixedString.Size12 s = new FixedString.Size12(); s.Buffer.CopyFrom("Fizzlesticks"); s.Buffer.CreateString().Should().Be("Fizzlestick"); }
public unsafe void Size12_RoundTrip(string value) { FixedString.Size12 s = new FixedString.Size12(); s.Buffer.CopyFrom(value); s.Buffer.CreateString().Should().Be(value); }