mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 01:34:25 +00:00 
			
		
		
		
	Specifically, functions that are run in the context of the test runner are put in module `test/testutil.lua` while the functions that are run in the context of the test session are put in `test/functional/testnvim.lua`. Closes https://github.com/neovim/neovim/issues/27004.
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
-- Test Ctrl-A and Ctrl-X, which increment and decrement decimal, hexadecimal,
 | 
						||
-- and octal numbers.
 | 
						||
 | 
						||
local n = require('test.functional.testnvim')()
 | 
						||
 | 
						||
local clear, feed, insert = n.clear, n.feed, n.insert
 | 
						||
local feed_command, expect = n.feed_command, n.expect
 | 
						||
 | 
						||
describe('increment and decrement commands', function()
 | 
						||
  setup(clear)
 | 
						||
 | 
						||
  it('should work', function()
 | 
						||
    -- Insert some numbers in various bases.
 | 
						||
    insert([[
 | 
						||
      0b101   100     0x100     077     0
 | 
						||
      0b101   100     0x100     077
 | 
						||
      100     0x100     077     0xfF     0xFf
 | 
						||
      100     0x100     077
 | 
						||
      0x0b101  0b1101]])
 | 
						||
 | 
						||
    -- Increment and decrement numbers in the first row, interpreting the
 | 
						||
    -- numbers as decimal, octal or hexadecimal.
 | 
						||
    feed_command('set nrformats=bin,octal,hex', '1')
 | 
						||
    feed('63l102ll64128$')
 | 
						||
 | 
						||
    -- For the second row, treat the numbers as decimal or octal.
 | 
						||
    -- 0x100 should be interpreted as decimal 0, the character x, and decimal 100.
 | 
						||
    feed_command('set nrformats=octal', '2')
 | 
						||
    feed('0w102l2w65129blx6lD')
 | 
						||
 | 
						||
    -- For the third row, treat the numbers as decimal or hexadecimal.
 | 
						||
    -- 077 should be interpreted as decimal 77.
 | 
						||
    feed_command('set nrformats=hex', '3')
 | 
						||
    feed('0101l257Txldt   ')
 | 
						||
 | 
						||
    -- For the fourth row, interpret all numbers as decimal.
 | 
						||
    feed_command('set nrformats=', '4')
 | 
						||
    feed('0200l100w78')
 | 
						||
 | 
						||
    -- For the last row, interpret as binary and hexadecimal.
 | 
						||
    feed_command('set nrformats=bin,hex', '5')
 | 
						||
    feed('010065l6432')
 | 
						||
 | 
						||
    expect([[
 | 
						||
      0b011   0     0x0ff     0000     -1
 | 
						||
      1b101   0     1x100     0777777
 | 
						||
      -1     0x0     078     0xFE     0xfe
 | 
						||
      -100     -100x100     000
 | 
						||
      0x0b0de  0b0101101]])
 | 
						||
  end)
 | 
						||
end)
 |