Beispiel #1
0
        public void OpenMenu()
        {
            _layoutRenderer.FrameIndex = 0;
            _layoutRenderer.SelectedSequenceGroupIndex = 0;

            _backgroundSeq.Begin();
            _subMenu = new MainMenu(this);
            _subMenu.Open();

            _subMenuDescriptionInfo.Clear();
            _subMenuDescriptionSeq = SequenceFactory.Create(new List <AnimatedSequenceDesc>());
            _subMenuDescriptionSeq.Begin();

            IsMenuOpen = true;
        }
Beispiel #2
0
        public static void GetString_Encoding_ReadOnlySequence()
        {
            // First try the single-segment code path.

            ReadOnlySequence <byte> sequence = new ReadOnlySequence <byte>(Encoding.UTF8.GetBytes("Hello!"));

            Assert.Equal("Hello!", EncodingExtensions.GetString(Encoding.UTF8, sequence));

            // Next try the multi-segment code path.
            // We've intentionally split multi-byte subsequences here to test flushing mechanisms.

            sequence = SequenceFactory.Create(
                new byte[] { 0x20 },                   // U+0020
                new byte[] { 0x61, 0xC2 },             // U+0061 and U+0080 (continues on next line)
                new byte[] { 0x80, 0xED },             // (cont.) + U+D7FF (continues on next line)
                new byte[] { },                        // empty segment, just to make sure we handle it correctly
                new byte[] { 0x9F, 0xBF, 0xF4, 0x80 }, // (cont.) + U+100000 (continues on next line)
                new byte[] { 0x80, 0x80 },             // (cont.)
                new byte[] { 0xC2 });                  // leftover data (should be replaced)

            Assert.Equal("\u0020\u0061\u0080\ud7ff\U00100000\ufffd", EncodingExtensions.GetString(Encoding.UTF8, sequence));
        }
Beispiel #3
0
        public static void GetBytes_Encoding_ReadOnlySequence()
        {
            // First try the single-segment code path.

            ReadOnlySequence <char> sequence = new ReadOnlySequence <char>("Hello!".ToCharArray());

            Assert.Equal(Encoding.UTF8.GetBytes("Hello!"), EncodingExtensions.GetBytes(Encoding.UTF8, sequence));

            // Next try the multi-segment code path.
            // We've intentionally split multi-char subsequences here to test flushing mechanisms.

            sequence = SequenceFactory.Create(
                new char[] { '\u0020' },           // U+0020
                new char[] { '\u0061', '\u0080' }, // U+0061 and U+0080 (continues on next line)
                new char[] { '\ud800' },           // U+10000 (continues on next line)
                new char[] { },                    // empty segment, just to make sure we handle it correctly
                new char[] { '\udc00', '\udbff' }, // (cont.) + U+10FFFF (continues on next line)
                new char[] { '\udfff' },           // (cont.)
                new char[] { '\ud800' });          // leftover data (should be replaced)

            Assert.Equal(Encoding.UTF8.GetBytes("\u0020\u0061\u0080\U00010000\U0010FFFF\ufffd"), EncodingExtensions.GetBytes(Encoding.UTF8, sequence));
        }
Beispiel #4
0
        public static void Convert_Decoder_ReadOnlySequence_IBufferWriter()
        {
            Decoder decoder = Encoding.UTF8.GetDecoder();
            ArrayBufferWriter <char> writer = new ArrayBufferWriter <char>();

            // First, input with no flushing and no leftover data.

            ReadOnlySequence <byte> inputData = SequenceFactory.Create(
                new byte[] { 0x20 },                    // U+0020
                new byte[] { 0x61, 0xC2 },              // U+0061 and U+0080 (continues on next line)
                new byte[] { 0x80, 0xED, 0x9F, 0xBF }); // (cont.) + U+D7FF

            EncodingExtensions.Convert(decoder, inputData, writer, flush: false, out long charsUsed, out bool completed);
            Assert.Equal(4, charsUsed);
            Assert.True(completed);

            // Then, input with no flushing and leftover data.

            inputData = SequenceFactory.Create(
                new byte[] { 0xF4, 0x80 }); // U+100000 (continues on next line)
            EncodingExtensions.Convert(decoder, inputData, writer, flush: false, out charsUsed, out completed);
            Assert.Equal(0, charsUsed);
            Assert.False(completed);

            // Then, input with flushing and leftover data (should be replaced).

            inputData = SequenceFactory.Create(
                new byte[] { 0x80, 0x80 }, // (cont.)
                new byte[] { 0xC2 });      // leftover data (should be replaced)
            EncodingExtensions.Convert(decoder, inputData, writer, flush: true, out charsUsed, out completed);
            Assert.Equal(3, charsUsed);
            Assert.True(completed);

            // Now make sure all of the data was decoded properly.

            Assert.Equal("\u0020\u0061\u0080\ud7ff\U00100000\ufffd", writer.WrittenSpan.ToString());
        }
Beispiel #5
0
        public static void Convert_Encoder_ReadOnlySequence_IBufferWriter()
        {
            Encoder encoder = Encoding.UTF8.GetEncoder();
            ArrayBufferWriter <byte> writer = new ArrayBufferWriter <byte>();

            // First, input with no flushing and no leftover data.

            ReadOnlySequence <char> inputData = SequenceFactory.Create(
                new char[] { '\u0020' },  // U+0020
                new char[] { '\ud7ff' }); // U+D7FF

            EncodingExtensions.Convert(encoder, inputData, writer, flush: false, out long bytesUsed, out bool completed);
            Assert.Equal(4, bytesUsed);
            Assert.True(completed);

            // Then, input with no flushing and leftover data.

            inputData = SequenceFactory.Create(
                new char[] { '\udbc0' }); // U+100000 (continues on next line)
            EncodingExtensions.Convert(encoder, inputData, writer, flush: false, out bytesUsed, out completed);
            Assert.Equal(0, bytesUsed);
            Assert.False(completed);

            // Then, input with flushing and leftover data (should be replaced).

            inputData = SequenceFactory.Create(
                new char[] { '\udc00' },  // (cont.)
                new char[] { '\ud800' }); // leftover data (should be replaced)
            EncodingExtensions.Convert(encoder, inputData, writer, flush: true, out bytesUsed, out completed);
            Assert.Equal(7, bytesUsed);
            Assert.True(completed);

            // Now make sure all of the data was decoded properly.

            Assert.Equal(Encoding.UTF8.GetBytes("\u0020\ud7ff\U00100000\ufffd"), writer.WrittenSpan.ToArray());
        }
Beispiel #6
0
        /// <summary>Creates and enumerates a sequence</summary>
        /// <param name="name">Sequence name</param>
        /// <param name="limit">Sequence limit, a natural positive number</param>
        public HttpResponseMessage Get(string name, int limit)
        {
            var sequence = Factory.Create <int>(name, limit);

            return(Json(new { sequence.Name, sequence.Description, Values = sequence.Print() }));
        }