Skip to content

Instantly share code, notes, and snippets.

@tavinus
Last active September 16, 2018 08:24
Show Gist options
  • Save tavinus/f0810d6eee49a47b5866ca7fc7aebbb5 to your computer and use it in GitHub Desktop.
Save tavinus/f0810d6eee49a47b5866ca7fc7aebbb5 to your computer and use it in GitHub Desktop.
Markdown Lists Tests and Examples

Markdown Lists Tests and Examples

This document makes some tests with .md lists to see how they render here on github.
Some test renders are shown at the first comment below to compare gist/comment parsers.

Highlights (Aug, 2018)

  • Lists seem to break on specific spacings for both types
  • Lists seem to break differently on github comments and gists (still didn't test a full repo)
  • Both lists seem to break when you use -1 spaces than what it needs to change levels
  • It could be that the sequential spacing on tests helps to break the parser (being tested)
  • There is a range of spacings that can be used, as long as kept consistent

Tests on comments (Aug, 2018)

Ordered minimum increment size is 3
Unordered minimum increment size is 2

Ordered maximum increment size is 6
Unordered maximum increment size is 5

There are TEN maximum levels for both lists
(after that it stays at level 10)


Ordered lists

The ordered lists can actually have all items with the index one as in "1.".
This is very useful for us to change lists without having to bother with renumbering everything.
Rendering will number them correctly.

Basic example

Source

 1. First Level
    1. Second Level
    1. Second Level
       1. Third Level
       1. Third Level
          1. Fourth Level
             1. Fifth Level
 1. First Level
 1. First Level
    1. Second Level
       1. Third Level
 1. First Level

Render

  1. First Level
    1. Second Level
    2. Second Level
      1. Third Level
      2. Third Level
        1. Fourth Level
          1. Fifth Level
  2. First Level
  3. First Level
    1. Second Level
      1. Third Level
  4. First Level

Unordered lists

The unordered lists all start with a dash "-" with preceding spaces to determine levels.

Rendering here seems to break when it is spaced whithin the sequence { 4, 9, 14, 19, 24, ... }

Basic example

Source

 - First Level
      - Second Level
 - First Level
      - Second Level
           - Third Level
                - Fourth Level
                - Fifth Level
           - Third Level
                - Fourth Level
      - Second Level
           - Third Level
                - Fourth Level
      - Second Level
 - First Level
      - Second Level
 - First Level

Render

  • First Level
    • Second Level
  • First Level
    • Second Level
      • Third Level
        • Fourth Level
        • Fifth Level
      • Third Level
        • Fourth Level
    • Second Level
      • Third Level
        • Fourth Level
    • Second Level
  • First Level
    • Second Level
  • First Level

################################################################################################
##                                      TESTS START HERE                                      ##
################################################################################################

Ordered - Test big list

Shell script

S='Space(s)' && i=0 ; while [ $i -le 30 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "1." "$i $S" ; let i+=1 ; done

Output

1. 0 Space(s)
 1. 1 Space(s)
  1. 2 Space(s)
   1. 3 Space(s)
    1. 4 Space(s)
     1. 5 Space(s)
      1. 6 Space(s)
       1. 7 Space(s)
        1. 8 Space(s)
         1. 9 Space(s)
          1. 10 Space(s)
           1. 11 Space(s)
            1. 12 Space(s)
             1. 13 Space(s)
              1. 14 Space(s)
               1. 15 Space(s)
                1. 16 Space(s)
                 1. 17 Space(s)
                  1. 18 Space(s)
                   1. 19 Space(s)
                    1. 20 Space(s)
                     1. 21 Space(s)
                      1. 22 Space(s)
                       1. 23 Space(s)
                        1. 24 Space(s)
                         1. 25 Space(s)
                          1. 26 Space(s)
                           1. 27 Space(s)
                            1. 28 Space(s)
                             1. 29 Space(s)
                              1. 30 Space(s)

Render

  1. 0 Space(s)
  2. 1 Space(s)
  3. 2 Space(s)
  4. 3 Space(s) 1. 4 Space(s) 1. 5 Space(s)
    1. 6 Space(s)
    2. 7 Space(s)
    3. 8 Space(s)
    4. 9 Space(s) 1. 10 Space(s) 1. 11 Space(s)
      1. 12 Space(s)
      2. 13 Space(s)
      3. 14 Space(s)
      4. 15 Space(s) 1. 16 Space(s) 1. 17 Space(s)
        1. 18 Space(s)
        2. 19 Space(s)
        3. 20 Space(s)
        4. 21 Space(s) 1. 22 Space(s) 1. 23 Space(s)
          1. 24 Space(s)
          2. 25 Space(s)
          3. 26 Space(s)
          4. 27 Space(s) 1. 28 Space(s) 1. 29 Space(s)
            1. 30 Space(s)

Ordered - Test valid steps

Let's create a test with valid step increments.

Shell script

S='Space(s)' && i=0 ; while [ $i -le 60 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "1." "$i $S" ; let i+=5 ; done

Output

1. 0 Space(s)
     1. 5 Space(s)
          1. 10 Space(s)
               1. 15 Space(s)
                    1. 20 Space(s)
                         1. 25 Space(s)
                              1. 30 Space(s)
                                   1. 35 Space(s)
                                        1. 40 Space(s)
                                             1. 45 Space(s)
                                                  1. 50 Space(s)
                                                       1. 55 Space(s)
                                                            1. 60 Space(s)

Render

  1. 0 Space(s)
    1. 5 Space(s)
      1. 10 Space(s)
        1. 15 Space(s)
          1. 20 Space(s)
            1. 25 Space(s)
              1. 30 Space(s)
                1. 35 Space(s)
                  1. 40 Space(s)
                    1. 45 Space(s)
                    2. 50 Space(s)
                    3. 55 Space(s)
                    4. 60 Space(s)

Unordered - Test big list

Shell script

S='Space(s)' && i=0 ; while [ $i -le 30 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "-" "$i $S" ; let i+=1 ; done

Output

- 0 Space(s)
 - 1 Space(s)
  - 2 Space(s)
   - 3 Space(s)
    - 4 Space(s)
     - 5 Space(s)
      - 6 Space(s)
       - 7 Space(s)
        - 8 Space(s)
         - 9 Space(s)
          - 10 Space(s)
           - 11 Space(s)
            - 12 Space(s)
             - 13 Space(s)
              - 14 Space(s)
               - 15 Space(s)
                - 16 Space(s)
                 - 17 Space(s)
                  - 18 Space(s)
                   - 19 Space(s)
                    - 20 Space(s)
                     - 21 Space(s)
                      - 22 Space(s)
                       - 23 Space(s)
                        - 24 Space(s)
                         - 25 Space(s)
                          - 26 Space(s)
                           - 27 Space(s)
                            - 28 Space(s)
                             - 29 Space(s)
                              - 30 Space(s)

Render

  • 0 Space(s)
  • 1 Space(s)
  • 2 Space(s)
  • 3 Space(s) - 4 Space(s)
    • 5 Space(s)
    • 6 Space(s)
    • 7 Space(s)
    • 8 Space(s) - 9 Space(s)
      • 10 Space(s)
      • 11 Space(s)
      • 12 Space(s)
      • 13 Space(s) - 14 Space(s)
        • 15 Space(s)
        • 16 Space(s)
        • 17 Space(s)
        • 18 Space(s) - 19 Space(s)
          • 20 Space(s)
          • 21 Space(s)
          • 22 Space(s)
          • 23 Space(s) - 24 Space(s)
            • 25 Space(s)
            • 26 Space(s)
            • 27 Space(s)
            • 28 Space(s) - 29 Space(s)
              • 30 Space(s)

Unordered - Test valid steps

Let's create a test with valid step increments.

Shell script

S='Space(s)' && i=0 ; while [ $i -le 60 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "-" "$i $S" ; let i+=5 ; done

Output

- 0 Space(s)
     - 5 Space(s)
          - 10 Space(s)
               - 15 Space(s)
                    - 20 Space(s)
                         - 25 Space(s)
                              - 30 Space(s)
                                   - 35 Space(s)
                                        - 40 Space(s)
                                             - 45 Space(s)
                                                  - 50 Space(s)
                                                       - 55 Space(s)
                                                            - 60 Space(s)

Render

  • 0 Space(s)
    • 5 Space(s)
      • 10 Space(s)
        • 15 Space(s)
          • 20 Space(s)
            • 25 Space(s)
              • 30 Space(s)
                • 35 Space(s)
                  • 40 Space(s)
                    • 45 Space(s)
                    • 50 Space(s)
                    • 55 Space(s)
                    • 60 Space(s)

Unordered - Broken Lists Tests

Let's force errors where we can

Shell script

for i in 4 9 14 19 24 ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "-" "$i Space(s)" ; done

Output

    - 4 Space(s)
         - 9 Space(s)
              - 14 Space(s)
                   - 19 Space(s)
                        - 24 Space(s)

We will append to the Output start to see what happens
Some lists will become code comments, even though that is NOT intended
Again, behavior seems different on gists VS comments (they break differently)
I use normal code blocks as dividers to make sure the render engine can clear each list properly

Renders

No list below is supposed to be a code block

SHELL OUTPUT - NOTHING APPENDED
- 4 Space(s)
     - 9 Space(s)
          - 14 Space(s)
               - 19 Space(s)
                    - 24 Space(s)
APPEND ITEM WITH ZERO SPACES
  • Append with ZERO spaces
    • 4 Space(s)
      • 9 Space(s)
        • 14 Space(s)
          • 19 Space(s)
            • 24 Space(s)
APPEND ITEM WITH ONE SPACE
  • Append with ONE space
    • 4 Space(s)
      • 9 Space(s)
        • 14 Space(s)
          • 19 Space(s)
            • 24 Space(s)
APPEND ITEM WITH TWO SPACES
  • Append with TWO spaces
    • 4 Space(s)
      • 9 Space(s)
        • 14 Space(s)
          • 19 Space(s)
            • 24 Space(s)
APPEND ITEM WITH THREE SPACES
  • Append with THREE spaces - 4 Space(s) - 9 Space(s) - 14 Space(s) - 19 Space(s) - 24 Space(s)
APPEND ITEM WITH FOUR SPACES
- Append with FOUR spaces
- 4 Space(s)
     - 9 Space(s)
          - 14 Space(s)
               - 19 Space(s)
                    - 24 Space(s)
APPEND ITEM WITH FIVE SPACES
 - Append with FIVE spaces
- 4 Space(s)
     - 9 Space(s)
          - 14 Space(s)
               - 19 Space(s)
                    - 24 Space(s)
DONE 

tavinus

@tavinus
Copy link
Author

tavinus commented Sep 16, 2018

Test renders in a comment

Ordered Basic example

  1. First Level
    1. Second Level
    2. Second Level
      1. Third Level
      2. Third Level
        1. Fourth Level
          1. Fifth Level
  2. First Level
  3. First Level
    1. Second Level
      1. Third Level
  4. First Level

Unordered Basic example

  • First Level
    • Second Level
  • First Level
    • Second Level
      • Third Level
        • Fourth Level
        • Fifth Level
      • Third Level
        • Fourth Level
    • Second Level
      • Third Level
        • Fourth Level
    • Second Level
  • First Level
    • Second Level
  • First Level

Ordered - Test big list

  • 0 Space(s)
  • 1 Space(s)
  • 2 Space(s)
  • 3 Space(s)
    - 4 Space(s)
    • 5 Space(s)
    • 6 Space(s)
    • 7 Space(s)
    • 8 Space(s)
      - 9 Space(s)
      • 10 Space(s)
      • 11 Space(s)
      • 12 Space(s)
      • 13 Space(s)
        - 14 Space(s)
        • 15 Space(s)
        • 16 Space(s)
        • 17 Space(s)
        • 18 Space(s)
          - 19 Space(s)
          • 20 Space(s)
          • 21 Space(s)
          • 22 Space(s)
          • 23 Space(s)
            - 24 Space(s)
            • 25 Space(s)
            • 26 Space(s)
            • 27 Space(s)
            • 28 Space(s)
              - 29 Space(s)
              • 30 Space(s)

Ordered - Test valid steps

  • 1 Space(s)
    • 4 Space(s)
      • 7 Space(s)
        • 10 Space(s)
          • 13 Space(s)
            • 17 Space(s)
              • 20 Space(s)
                • 23 Space(s)
                  • 26 Space(s)
                    • 29 Space(s)
                    • 32 Space(s)
                    • 35 Space(s)
                    • 38 Space(s)
                    • 42 Space(s)
                    • 45 Space(s)
                    • 48 Space(s)
                    • 52 Space(s)
                    • 55 Space(s)
                    • 58 Space(s)

Unordered - Test big list

  • 0 Space(s)
  • 1 Space(s)
  • 2 Space(s)
  • 3 Space(s)
    - 4 Space(s)
    • 5 Space(s)
    • 6 Space(s)
    • 7 Space(s)
    • 8 Space(s)
      - 9 Space(s)
      • 10 Space(s)
      • 11 Space(s)
      • 12 Space(s)
      • 13 Space(s)
        - 14 Space(s)
        • 15 Space(s)
        • 16 Space(s)
        • 17 Space(s)
        • 18 Space(s)
          - 19 Space(s)
          • 20 Space(s)
          • 21 Space(s)
          • 22 Space(s)
          • 23 Space(s)
            - 24 Space(s)
            • 25 Space(s)
            • 26 Space(s)
            • 27 Space(s)
            • 28 Space(s)
              - 29 Space(s)

Unordered - Test valid steps

  1. 1 Space(s)
    1. 6 Space(s)
      1. 11 Space(s)
        1. 16 Space(s)
          1. 21 Space(s)
            1. 26 Space(s)
              1. 31 Space(s)
                1. 36 Space(s)
                  1. 41 Space(s)
                    1. 46 Space(s)
                    2. 51 Space(s)
                    3. 56 Space(s)
                    4. 61 Space(s)
                    5. 66 Space(s)

@tavinus
Copy link
Author

tavinus commented Sep 16, 2018

Unordered - Broken Lists Tests

Let's force errors where we can

Shell script

for i in 4 9 14 19 24 ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "-" "$i Space(s)" ; done

Output

    - 4 Space(s)
         - 9 Space(s)
              - 14 Space(s)
                   - 19 Space(s)
                        - 24 Space(s)

We will append to the Output start to see what happens
Some lists will become code comments, even though that is NOT intended
Again, behavior seems different on gists VS comments (they break differently)
I use normal code blocks as dividers to make sure the render engine can clear each list properly

Renders

No list below is supposed to be a code block

SHELL OUTPUT - NOTHING APPENDED
- 4 Space(s)
     - 9 Space(s)
          - 14 Space(s)
               - 19 Space(s)
                    - 24 Space(s)
ITEM WITH ZERO SPACES APPENDED
  • Append with ZERO spaces
    • 4 Space(s)
      • 9 Space(s)
        • 14 Space(s)
          • 19 Space(s)
            • 24 Space(s)
ITEM WITH ONE SPACE APPENDED
  • Append with ONE space
    • 4 Space(s)
      • 9 Space(s)
        • 14 Space(s)
          • 19 Space(s)
            • 24 Space(s)
ITEM WITH TWO SPACES APPENDED
  • Append with TWO spaces
    • 4 Space(s)
      • 9 Space(s)
        • 14 Space(s)
          • 19 Space(s)
            • 24 Space(s)
ITEM WITH THREE SPACES APPENDED
  • Append with THREE spaces
    - 4 Space(s)
    - 9 Space(s)
    - 14 Space(s)
    - 19 Space(s)
    - 24 Space(s)
ITEM WITH FOUR SPACES APPENDED
- Append with FOUR spaces
- 4 Space(s)
     - 9 Space(s)
          - 14 Space(s)
               - 19 Space(s)
                    - 24 Space(s)
ITEM WITH FIVE SPACES APPENDED
 - Append with FIVE spaces
- 4 Space(s)
     - 9 Space(s)
          - 14 Space(s)
               - 19 Space(s)
                    - 24 Space(s)
DONE 

@tavinus
Copy link
Author

tavinus commented Sep 16, 2018

RESERVED

@tavinus
Copy link
Author

tavinus commented Sep 16, 2018

Consistency test

Seems like we can increment by different number of spaces,
as long as they are kept consistent.

From the tests, below (on this comment)

Ordered minimum increment size is 3
Unordered minimum increment size is 2

Ordered maximum increment size is 6
Unordered maximum increment size is 5

Testing increments - first item with 0 spaces

This test uses ZERO spaces for the first element of the list

by ONE

breaks on both

S='Space(s)' && i=0 ; while [ $i -le 30 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "1." "$i $S" ; let i+=1 ; done
  1. 0 Space(s)
  2. 1 Space(s)
  3. 2 Space(s)
  4. 3 Space(s)
    1. 4 Space(s)
    1. 5 Space(s)
    1. 6 Space(s)
    2. 7 Space(s)
    3. 8 Space(s)
    4. 9 Space(s)
      1. 10 Space(s)
      1. 11 Space(s)
      1. 12 Space(s)
      2. 13 Space(s)
      3. 14 Space(s)
      4. 15 Space(s)
        1. 16 Space(s)
        1. 17 Space(s)
        1. 18 Space(s)
        2. 19 Space(s)
        3. 20 Space(s)
        4. 21 Space(s)
          1. 22 Space(s)
          1. 23 Space(s)
          1. 24 Space(s)
          2. 25 Space(s)
          3. 26 Space(s)
          4. 27 Space(s)
            1. 28 Space(s)
            1. 29 Space(s)
            1. 30 Space(s)
S='Space(s)' && i=0 ; while [ $i -le 30 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "-" "$i $S" ; let i+=1 ; done
  • 0 Space(s)
  • 1 Space(s)
  • 2 Space(s)
  • 3 Space(s)
    - 4 Space(s)
    • 5 Space(s)
    • 6 Space(s)
    • 7 Space(s)
    • 8 Space(s)
      - 9 Space(s)
      • 10 Space(s)
      • 11 Space(s)
      • 12 Space(s)
      • 13 Space(s)
        - 14 Space(s)
        • 15 Space(s)
        • 16 Space(s)
        • 17 Space(s)
        • 18 Space(s)
          - 19 Space(s)
          • 20 Space(s)
          • 21 Space(s)
          • 22 Space(s)
          • 23 Space(s)
            - 24 Space(s)
            • 25 Space(s)
            • 26 Space(s)
            • 27 Space(s)
            • 28 Space(s)
              - 29 Space(s)
              • 30 Space(s)

by TWO

breaks on ordered, works on unordered

S='Space(s)' && i=0 ; while [ $i -le 30 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "1." "$i $S" ; let i+=2 ; done
  1. 0 Space(s)
  2. 2 Space(s)
    1. 4 Space(s)
    1. 6 Space(s)
    2. 8 Space(s)
      1. 10 Space(s)
      1. 12 Space(s)
      2. 14 Space(s)
        1. 16 Space(s)
        1. 18 Space(s)
        2. 20 Space(s)
          1. 22 Space(s)
          1. 24 Space(s)
          2. 26 Space(s)
            1. 28 Space(s)
            1. 30 Space(s)
S='Space(s)' && i=0 ; while [ $i -le 30 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "-" "$i $S" ; let i+=2 ; done
  • 0 Space(s)
    • 2 Space(s)
      • 4 Space(s)
        • 6 Space(s)
          • 8 Space(s)
            • 10 Space(s)
              • 12 Space(s)
                • 14 Space(s)
                  • 16 Space(s)
                    • 18 Space(s)
                    • 20 Space(s)
                    • 22 Space(s)
                    • 24 Space(s)
                    • 26 Space(s)
                    • 28 Space(s)
                    • 30 Space(s)

by THREE

works on both

S='Space(s)' && i=0 ; while [ $i -le 30 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "1." "$i $S" ; let i+=3 ; done
  1. 0 Space(s)
    1. 3 Space(s)
      1. 6 Space(s)
        1. 9 Space(s)
          1. 12 Space(s)
            1. 15 Space(s)
              1. 18 Space(s)
                1. 21 Space(s)
                  1. 24 Space(s)
                    1. 27 Space(s)
                    2. 30 Space(s)
S='Space(s)' && i=0 ; while [ $i -le 30 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "-" "$i $S" ; let i+=3 ; done
  • 0 Space(s)
    • 3 Space(s)
      • 6 Space(s)
        • 9 Space(s)
          • 12 Space(s)
            • 15 Space(s)
              • 18 Space(s)
                • 21 Space(s)
                  • 24 Space(s)
                    • 27 Space(s)
                    • 30 Space(s)

by FOUR

works on both

S='Space(s)' && i=0 ; while [ $i -le 30 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "1." "$i $S" ; let i+=4 ; done
  1. 0 Space(s)
    1. 4 Space(s)
      1. 8 Space(s)
        1. 12 Space(s)
          1. 16 Space(s)
            1. 20 Space(s)
              1. 24 Space(s)
                1. 28 Space(s)
S='Space(s)' && i=0 ; while [ $i -le 30 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "-" "$i $S" ; let i+=4 ; done
  • 0 Space(s)
    • 4 Space(s)
      • 8 Space(s)
        • 12 Space(s)
          • 16 Space(s)
            • 20 Space(s)
              • 24 Space(s)
                • 28 Space(s)

by FIVE

works on both

S='Space(s)' && i=0 ; while [ $i -le 30 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "1." "$i $S" ; let i+=5 ; done
  1. 0 Space(s)
    1. 5 Space(s)
      1. 10 Space(s)
        1. 15 Space(s)
          1. 20 Space(s)
            1. 25 Space(s)
              1. 30 Space(s)
S='Space(s)' && i=0 ; while [ $i -le 30 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "-" "$i $S" ; let i+=5 ; done
  • 0 Space(s)
    • 5 Space(s)
      • 10 Space(s)
        • 15 Space(s)
          • 20 Space(s)
            • 25 Space(s)
              • 30 Space(s)

by SIX

works on ordered, breaks on unordered

S='Space(s)' && i=0 ; while [ $i -le 30 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "1." "$i $S" ; let i+=6 ; done
  1. 0 Space(s)
    1. 6 Space(s)
      1. 12 Space(s)
        1. 18 Space(s)
          1. 24 Space(s)
            1. 30 Space(s)
S='Space(s)' && i=0 ; while [ $i -le 30 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "-" "$i $S" ; let i+=6 ; done
  • 0 Space(s)
    - 6 Space(s)
    - 12 Space(s)
    - 18 Space(s)
    - 24 Space(s)
    - 30 Space(s)

by SEVEN

breaks both

$ S='Space(s)' && i=0 ; while [ $i -le 30 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "1." "$i $S" ; let i+=7 ; done
  1. 0 Space(s)
    1. 7 Space(s)
    1. 14 Space(s)
    1. 21 Space(s)
    1. 28 Space(s)
$ S='Space(s)' && i=0 ; while [ $i -le 30 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "-" "$i $S" ; let i+=7 ; done
  • 0 Space(s)
    - 7 Space(s)
    - 14 Space(s)
    - 21 Space(s)
    - 28 Space(s)

@tavinus
Copy link
Author

tavinus commented Sep 16, 2018

Consistency test 2

Same test as above, but with the first item with 1 space instead of zero.

From the tests, below (on this comment)

Ordered minimum increment size is 3
Unordered minimum increment size is 2

Ordered maximum increment size is 6
Unordered maximum increment size is 5

Testing increments - first item with 1 space

This test uses ONE space for the first element of the list

by ONE

breaks on both

S='Space(s)' && i=1 ; while [ $i -le 30 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "1." "$i $S" ; let i+=1 ; done
  1. 1 Space(s)
  2. 2 Space(s)
  3. 3 Space(s)
    1. 4 Space(s)
    1. 5 Space(s)
    1. 6 Space(s)
    2. 7 Space(s)
    3. 8 Space(s)
    4. 9 Space(s)
      1. 10 Space(s)
      1. 11 Space(s)
      1. 12 Space(s)
      2. 13 Space(s)
      3. 14 Space(s)
      4. 15 Space(s)
        1. 16 Space(s)
        1. 17 Space(s)
        1. 18 Space(s)
        2. 19 Space(s)
        3. 20 Space(s)
        4. 21 Space(s)
          1. 22 Space(s)
          1. 23 Space(s)
          1. 24 Space(s)
          2. 25 Space(s)
          3. 26 Space(s)
          4. 27 Space(s)
            1. 28 Space(s)
            1. 29 Space(s)
            1. 30 Space(s)
S='Space(s)' && i=1 ; while [ $i -le 30 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "-" "$i $S" ; let i+=1 ; done
  • 1 Space(s)
  • 2 Space(s)
  • 3 Space(s)
    - 4 Space(s)
    • 5 Space(s)
    • 6 Space(s)
    • 7 Space(s)
    • 8 Space(s)
      - 9 Space(s)
      • 10 Space(s)
      • 11 Space(s)
      • 12 Space(s)
      • 13 Space(s)
        - 14 Space(s)
        • 15 Space(s)
        • 16 Space(s)
        • 17 Space(s)
        • 18 Space(s)
          - 19 Space(s)
          • 20 Space(s)
          • 21 Space(s)
          • 22 Space(s)
          • 23 Space(s)
            - 24 Space(s)
            • 25 Space(s)
            • 26 Space(s)
            • 27 Space(s)
            • 28 Space(s)
              - 29 Space(s)
              • 30 Space(s)

by TWO

breaks on ordered, works on unordered

S='Space(s)' && i=1 ; while [ $i -le 30 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "1." "$i $S" ; let i+=2 ; done
  1. 1 Space(s)
  2. 3 Space(s)
    1. 5 Space(s)
    1. 7 Space(s)
    2. 9 Space(s)
      1. 11 Space(s)
      1. 13 Space(s)
      2. 15 Space(s)
        1. 17 Space(s)
        1. 19 Space(s)
        2. 21 Space(s)
          1. 23 Space(s)
          1. 25 Space(s)
          2. 27 Space(s)
            1. 29 Space(s)
S='Space(s)' && i=1 ; while [ $i -le 30 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "-" "$i $S" ; let i+=2 ; done
  • 1 Space(s)
    • 3 Space(s)
      • 5 Space(s)
        • 7 Space(s)
          • 9 Space(s)
            • 11 Space(s)
              • 13 Space(s)
                • 15 Space(s)
                  • 17 Space(s)
                    • 19 Space(s)
                    • 21 Space(s)
                    • 23 Space(s)
                    • 25 Space(s)
                    • 27 Space(s)
                    • 29 Space(s)

by THREE

works on both

S='Space(s)' && i=1 ; while [ $i -le 30 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "1." "$i $S" ; let i+=3 ; done
  1. 1 Space(s)
    1. 4 Space(s)
      1. 7 Space(s)
        1. 10 Space(s)
          1. 13 Space(s)
            1. 16 Space(s)
              1. 19 Space(s)
                1. 22 Space(s)
                  1. 25 Space(s)
                    1. 28 Space(s)
S='Space(s)' && i=1 ; while [ $i -le 30 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "-" "$i $S" ; let i+=3 ; done
  • 1 Space(s)
    • 4 Space(s)
      • 7 Space(s)
        • 10 Space(s)
          • 13 Space(s)
            • 16 Space(s)
              • 19 Space(s)
                • 22 Space(s)
                  • 25 Space(s)
                    • 28 Space(s)

by FOUR

works on both

S='Space(s)' && i=1 ; while [ $i -le 30 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "1." "$i $S" ; let i+=4 ; done
  1. 1 Space(s)
    1. 5 Space(s)
      1. 9 Space(s)
        1. 13 Space(s)
          1. 17 Space(s)
            1. 21 Space(s)
              1. 25 Space(s)
                1. 29 Space(s)
S='Space(s)' && i=1 ; while [ $i -le 30 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "-" "$i $S" ; let i+=4 ; done
  • 1 Space(s)
    • 5 Space(s)
      • 9 Space(s)
        • 13 Space(s)
          • 17 Space(s)
            • 21 Space(s)
              • 25 Space(s)
                • 29 Space(s)

by FIVE

works on both

S='Space(s)' && i=1 ; while [ $i -le 30 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "1." "$i $S" ; let i+=5 ; done
  1. 1 Space(s)
    1. 6 Space(s)
      1. 11 Space(s)
        1. 16 Space(s)
          1. 21 Space(s)
            1. 26 Space(s)
S='Space(s)' && i=1 ; while [ $i -le 30 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "-" "$i $S" ; let i+=5 ; done
  • 1 Space(s)
    • 6 Space(s)
      • 11 Space(s)
        • 16 Space(s)
          • 21 Space(s)
            • 26 Space(s)

by SIX

works on ordered, breaks on unordered

S='Space(s)' && i=1 ; while [ $i -le 30 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "1." "$i $S" ; let i+=6 ; done
  1. 1 Space(s)
    1. 7 Space(s)
      1. 13 Space(s)
        1. 19 Space(s)
          1. 25 Space(s)
S='Space(s)' && i=1 ; while [ $i -le 30 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "-" "$i $S" ; let i+=6 ; done
  • 1 Space(s)
    - 7 Space(s)
    - 13 Space(s)
    - 19 Space(s)
    - 25 Space(s)

by SEVEN

breaks both

S='Space(s)' && i=1 ; while [ $i -le 30 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "1." "$i $S" ; let i+=7 ; done
  1. 1 Space(s)
    1. 8 Space(s)
    1. 15 Space(s)
    1. 22 Space(s)
    1. 29 Space(s)
S='Space(s)' && i=1 ; while [ $i -le 30 ] ; do for j in $(seq 1 $i) ; do printf "%s" " " ; done ; printf "%s %s\n" "-" "$i $S" ; let i+=7 ; done
  • 1 Space(s)
    - 8 Space(s)
    - 15 Space(s)
    - 22 Space(s)
    - 29 Space(s)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment