Example #1
0
        public async Task Test()
        {
            var keyboard = new MathKeyboard <TestFont, TGlyph>(TestTypesettingContexts.Instance, new TestFont())
            {
                InsertionPositionHighlighted = true
            };

            Assert.True(keyboard.ShouldDrawCaret);

            await Task.Delay((int)MathKeyboard <TestFont, TGlyph> .DefaultBlinkMilliseconds - CaretBlinks.MillisecondBuffer);

            Assert.True(keyboard.ShouldDrawCaret);

            keyboard.KeyPress(MathKeyboardInput.A);
            await Task.Delay((int)MathKeyboard <TestFont, TGlyph> .DefaultBlinkMilliseconds - CaretBlinks.MillisecondBuffer);

            Assert.True(keyboard.ShouldDrawCaret);

            keyboard.KeyPress(MathKeyboardInput.Left);
            await Task.Delay((int)MathKeyboard <TestFont, TGlyph> .DefaultBlinkMilliseconds - CaretBlinks.MillisecondBuffer);

            Assert.True(keyboard.ShouldDrawCaret);

            await Task.Delay(4 *CaretBlinks.MillisecondBuffer);

            Assert.False(keyboard.ShouldDrawCaret);
        }
Example #2
0
        public async Task CustomizedPlaceholderBlinks()
        {
            keyboard.KeyPress(MathKeyboardInput.Subscript);
            var outer = Assert.IsType <Atom.Atoms.Placeholder>(Assert.Single(keyboard.MathList));
            var inner = Assert.IsType <Atom.Atoms.Placeholder>(Assert.Single(outer.Subscript));

            Assert.True(keyboard.InsertionPositionHighlighted);
            Assert.False(keyboard.ShouldDrawCaret);
            Assert.Equal("😐", outer.Nucleus);
            Assert.Equal(System.Drawing.Color.Blue, outer.Color);
            Assert.Equal("😀", inner.Nucleus);
            Assert.Equal(System.Drawing.Color.Green, inner.Color);

            await Task.Delay((int)MathKeyboard <TestFont, TGlyph> .DefaultBlinkMilliseconds + CaretBlinks.MillisecondBuffer);

            Assert.False(keyboard.InsertionPositionHighlighted);
            Assert.False(keyboard.ShouldDrawCaret);
            Assert.Equal("😐", outer.Nucleus);
            Assert.Equal(System.Drawing.Color.Blue, outer.Color);
            Assert.Equal("😐", inner.Nucleus);
            Assert.Equal(System.Drawing.Color.Blue, inner.Color);

            await Task.Delay((int)MathKeyboard <TestFont, TGlyph> .DefaultBlinkMilliseconds + CaretBlinks.MillisecondBuffer);

            Assert.True(keyboard.InsertionPositionHighlighted);
            Assert.False(keyboard.ShouldDrawCaret);
            Assert.Equal("😐", outer.Nucleus);
            Assert.Equal(System.Drawing.Color.Blue, outer.Color);
            Assert.Equal("😀", inner.Nucleus);
            Assert.Equal(System.Drawing.Color.Green, inner.Color);
        }
Example #3
0
        public async Task Test()
        {
            var keyboard = new MathKeyboard <TestFont, char>(TestTypesettingContexts.Instance, new TestFont())
            {
                CaretState = MathKeyboardCaretState.Shown
            };

            Assert.Equal(MathKeyboardCaretState.Shown, keyboard.CaretState);

            keyboard.KeyPress(MathKeyboardInput.Subscript);
            var outer = Assert.IsType <Atom.Atoms.Placeholder>(Assert.Single(keyboard.MathList));
            var inner = Assert.IsType <Atom.Atoms.Placeholder>(Assert.Single(outer.Subscript));

            Assert.Equal(MathKeyboardCaretState.ShownThroughPlaceholder, keyboard.CaretState);
            Assert.Equal("\u25A1", outer.Nucleus);
            Assert.Equal("\u25A0", inner.Nucleus);

            await Task.Delay((int)MathKeyboard <TestFont, char> .DefaultBlinkMilliseconds + CaretBlinks.MillisecondBuffer);

            Assert.Equal(MathKeyboardCaretState.TemporarilyHidden, keyboard.CaretState);
            keyboard.KeyPress(MathKeyboardInput.Left);
            Assert.Equal(MathKeyboardCaretState.ShownThroughPlaceholder, keyboard.CaretState);
            Assert.Equal("\u25A0", outer.Nucleus);
            Assert.Equal("\u25A1", inner.Nucleus);

            Assert.Equal(MathKeyboardCaretState.ShownThroughPlaceholder, keyboard.CaretState);
            keyboard.KeyPress(MathKeyboardInput.Right);
            Assert.Equal("\u25A1", outer.Nucleus);
            Assert.Equal("\u25A0", inner.Nucleus);
        }
Example #4
0
        static void Test(string latex, K[] inputs)
        {
            var keyboard = new MathKeyboard <TestFont, char>(context, new TestFont());

            keyboard.KeyPress(inputs);
            Assert.Equal(latex, keyboard.LaTeX);
        }
Example #5
0
        static void TestEvent(EventInteractor attach, EventInteractor detach, K[] inputs)
        {
            var keyboard = new MathKeyboard <TestFont, char>(context, new TestFont());

            Assert.Raises <EventArgs>(
                h => attach(keyboard, new EventHandler(h)),
                h => detach(keyboard, new EventHandler(h)),
                () => keyboard.KeyPress(inputs));
        }
Example #6
0
        public void Test()
        {
            var keyboard = new MathKeyboard <TestFont, TGlyph>(TestTypesettingContexts.Instance, new TestFont())
            {
                InsertionPositionHighlighted = false
            };

            keyboard.StopBlinking();
            Assert.False(keyboard.InsertionPositionHighlighted);
            keyboard.KeyPress(MathKeyboardInput.Power);
            Assert.True(keyboard.InsertionPositionHighlighted);
        }
Example #7
0
        public async Task Test()
        {
            var keyboard = new MathKeyboard <TestFont, char>(TestTypesettingContexts.Instance, new TestFont())
            {
                CaretState = MathKeyboardCaretState.Shown
            };

            Assert.Equal(MathKeyboardCaretState.Shown, keyboard.CaretState);
            await Task.Delay((int)MathKeyboard <TestFont, char> .DefaultBlinkMilliseconds - CaretBlinks.MillisecondBuffer);

            Assert.Equal(MathKeyboardCaretState.Shown, keyboard.CaretState);
            keyboard.KeyPress(MathKeyboardInput.A);
            await Task.Delay((int)MathKeyboard <TestFont, char> .DefaultBlinkMilliseconds - CaretBlinks.MillisecondBuffer);

            Assert.Equal(MathKeyboardCaretState.Shown, keyboard.CaretState);
            keyboard.KeyPress(MathKeyboardInput.Left);
            await Task.Delay((int)MathKeyboard <TestFont, char> .DefaultBlinkMilliseconds - CaretBlinks.MillisecondBuffer);

            Assert.Equal(MathKeyboardCaretState.Shown, keyboard.CaretState);
            await Task.Delay((int)MathKeyboard <TestFont, char> .DefaultBlinkMilliseconds);

            Assert.Equal(MathKeyboardCaretState.TemporarilyHidden, keyboard.CaretState);
        }
Example #8
0
        public void MathInputButton_Command(MathKeyboardInput mathKeyboardInput)
        {
            var mathKeyboardClassThatProcessesKeyPresses = new MathKeyboard();
            var mathInputButton = new MathInputButton {
                Input = mathKeyboardInput, Keyboard = mathKeyboardClassThatProcessesKeyPresses
            };

            mathInputButton.Command.Execute(null); // Simulate a MathInputButton key press
            Assert.Equal(expectedResult(), mathKeyboardClassThatProcessesKeyPresses.LaTeX);
            string expectedResult()
            {
                var kb = new MathKeyboard();

                kb.KeyPress(mathKeyboardInput);
                return(kb.LaTeX);
            }
        }
Example #9
0
        public async Task PlaceholderDoesNotBlinkAndNoCaretVisible()
        {
            keyboard.KeyPress(MathKeyboardInput.Subscript);
            void Check()
            {
                Assert.True(keyboard.InsertionPositionHighlighted);
                Assert.False(keyboard.ShouldDrawCaret);
                ExpectedAppearance(DefaultPlaceholderSettings.RestingNucleus, DefaultPlaceholderSettings.ActiveNucleus);
            }

            Check();
            await Task.Delay((int)MathKeyboard <TestFont, TGlyph> .DefaultBlinkMilliseconds + CaretBlinks.MillisecondBuffer);

            Check();
            await Task.Delay((int)MathKeyboard <TestFont, TGlyph> .DefaultBlinkMilliseconds + CaretBlinks.MillisecondBuffer);

            Check();
        }