github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/builtins/core/ranges/number_test.go (about)

     1  package ranges_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	_ "github.com/lmorg/murex/builtins/core/index"
     7  	_ "github.com/lmorg/murex/builtins/core/mkarray"
     8  	_ "github.com/lmorg/murex/builtins/core/ranges"
     9  	_ "github.com/lmorg/murex/builtins/types/string"
    10  	"github.com/lmorg/murex/test"
    11  )
    12  
    13  func TestRangeLegacyByNumber(t *testing.T) {
    14  	tests := []test.MurexTest{
    15  		// FLAGGED
    16  
    17  		// Include
    18  		{
    19  			Block:  `a: [January..December] -> @[5..9]n`,
    20  			Stdout: "June\nJuly\nAugust\nSeptember\nOctober\n",
    21  		},
    22  		{
    23  			Block:  `a: [January..December] -> @[5..]n`,
    24  			Stdout: "June\nJuly\nAugust\nSeptember\nOctober\nNovember\nDecember\n",
    25  		},
    26  		{
    27  			Block:  `a: [January..December] -> @[..5]n`,
    28  			Stdout: "January\nFebruary\nMarch\nApril\nMay\nJune\n",
    29  		},
    30  
    31  		// Exclude
    32  		{
    33  			Block:  `a: [January..December] -> @[5..9]ne`,
    34  			Stdout: "July\nAugust\nSeptember\n",
    35  		},
    36  		{
    37  			Block:  `a: [January..December] -> @[5..]ne`,
    38  			Stdout: "July\nAugust\nSeptember\nOctober\nNovember\nDecember\n",
    39  		},
    40  		{
    41  			Block:  `a: [January..December] -> @[..5]ne`,
    42  			Stdout: "January\nFebruary\nMarch\nApril\nMay\n",
    43  		},
    44  
    45  		// DEFAULTED
    46  
    47  		// Include
    48  		{
    49  			Block:  `a: [January..December] -> @[5..9]`,
    50  			Stdout: "June\nJuly\nAugust\nSeptember\nOctober\n",
    51  		},
    52  		{
    53  			Block:  `a: [January..December] -> @[5..]`,
    54  			Stdout: "June\nJuly\nAugust\nSeptember\nOctober\nNovember\nDecember\n",
    55  		},
    56  		{
    57  			Block:  `a: [January..December] -> @[..5]`,
    58  			Stdout: "January\nFebruary\nMarch\nApril\nMay\nJune\n",
    59  		},
    60  
    61  		// Exclude
    62  		{
    63  			Block:  `a: [January..December] -> @[5..9]e`,
    64  			Stdout: "July\nAugust\nSeptember\n",
    65  		},
    66  		{
    67  			Block:  `a: [January..December] -> @[5..]e`,
    68  			Stdout: "July\nAugust\nSeptember\nOctober\nNovember\nDecember\n",
    69  		},
    70  		{
    71  			Block:  `a: [January..December] -> @[..5]e`,
    72  			Stdout: "January\nFebruary\nMarch\nApril\nMay\n",
    73  		},
    74  	}
    75  
    76  	test.RunMurexTests(tests, t)
    77  }
    78  
    79  func TestRangeIndexByNumber(t *testing.T) {
    80  	tests := []test.MurexTest{
    81  		// FLAGGED
    82  
    83  		// Include
    84  		{
    85  			Block:  `a: [January..December] -> [5..9]n`,
    86  			Stdout: "June\nJuly\nAugust\nSeptember\nOctober\n",
    87  		},
    88  		{
    89  			Block:  `a: [January..December] -> [5..]n`,
    90  			Stdout: "June\nJuly\nAugust\nSeptember\nOctober\nNovember\nDecember\n",
    91  		},
    92  		{
    93  			Block:  `a: [January..December] -> [..5]n`,
    94  			Stdout: "January\nFebruary\nMarch\nApril\nMay\nJune\n",
    95  		},
    96  
    97  		// Exclude
    98  		{
    99  			Block:  `a: [January..December] -> [5..9]ne`,
   100  			Stdout: "July\nAugust\nSeptember\n",
   101  		},
   102  		{
   103  			Block:  `a: [January..December] -> [5..]ne`,
   104  			Stdout: "July\nAugust\nSeptember\nOctober\nNovember\nDecember\n",
   105  		},
   106  		{
   107  			Block:  `a: [January..December] -> [..5]ne`,
   108  			Stdout: "January\nFebruary\nMarch\nApril\nMay\n",
   109  		},
   110  
   111  		// DEFAULTED
   112  
   113  		// Include
   114  		{
   115  			Block:  `a: [January..December] -> [6..10]`,
   116  			Stdout: "June\nJuly\nAugust\nSeptember\nOctober\n",
   117  		},
   118  		{
   119  			Block:  `a: [January..December] -> [6..]`,
   120  			Stdout: "June\nJuly\nAugust\nSeptember\nOctober\nNovember\nDecember\n",
   121  		},
   122  		{
   123  			Block:  `a: [January..December] -> [..6]`,
   124  			Stdout: "January\nFebruary\nMarch\nApril\nMay\nJune\n",
   125  		},
   126  
   127  		// Exclude
   128  		{
   129  			Block:  `a: [January..December] -> [6..10]e`,
   130  			Stdout: "July\nAugust\nSeptember\n",
   131  		},
   132  		{
   133  			Block:  `a: [January..December] -> [6..]e`,
   134  			Stdout: "July\nAugust\nSeptember\nOctober\nNovember\nDecember\n",
   135  		},
   136  		{
   137  			Block:  `a: [January..December] -> [..6]e`,
   138  			Stdout: "January\nFebruary\nMarch\nApril\nMay\n",
   139  		},
   140  	}
   141  
   142  	test.RunMurexTests(tests, t)
   143  }
   144  
   145  func TestRangeIndexByNegativeNumber(t *testing.T) {
   146  	tests := []test.MurexTest{
   147  		// FLAGGED
   148  
   149  		// Include
   150  		{
   151  			Block:  `a: [January..December] -> [-5..-3]n`,
   152  			Stdout: "July\nAugust\n",
   153  		},
   154  		{
   155  			Block:  `a: [January..December] -> [-5..]n`,
   156  			Stdout: "July\nAugust\nSeptember\nOctober\nNovember\nDecember\n",
   157  		},
   158  		/*{
   159  			Block:  `a: [January..December] -> [..-6]n`,
   160  			Stdout: "January\nFebruary\nMarch\nApril\nMay\nJune\n",
   161  		},*/
   162  
   163  		// Exclude
   164  		{
   165  			Block:  `a: [January..December] -> [-5..-3]ne`,
   166  			Stdout: "August\n",
   167  		},
   168  		{
   169  			Block:  `a: [January..December] -> [-5..]ne`,
   170  			Stdout: "August\nSeptember\nOctober\nNovember\nDecember\n",
   171  		},
   172  		/*{
   173  			Block:  `a: [January..December] -> [..-6]ne`,
   174  			Stdout: "January\nFebruary\nMarch\nApril\nMay\nJune\n",
   175  		},*/
   176  
   177  		// DEFAULTED
   178  
   179  		// Include
   180  		{
   181  			Block:  `a: [January..December] -> @[-5..-3]`,
   182  			Stdout: "July\nAugust\n",
   183  		},
   184  		{
   185  			Block:  `a: [January..December] -> @[-5..]`,
   186  			Stdout: "July\nAugust\nSeptember\nOctober\nNovember\nDecember\n",
   187  		},
   188  		/*{
   189  			Block:  `a: [January..December] -> @[..-6]`,
   190  			Stdout: "January\nFebruary\nMarch\nApril\nMay\nJune\n",
   191  		},*/
   192  
   193  		// Exclude
   194  		{
   195  			Block:  `a: [January..December] -> @[-5..-3]e`,
   196  			Stdout: "August\n",
   197  		},
   198  		{
   199  			Block:  `a: [January..December] -> @[-5..]e`,
   200  			Stdout: "August\nSeptember\nOctober\nNovember\nDecember\n",
   201  		},
   202  		/*{
   203  			Block:  `a: [January..December] -> @[..-6]e`,
   204  			Stdout: "January\nFebruary\nMarch\nApril\nMay\nJune\n",
   205  		},*/
   206  	}
   207  
   208  	test.RunMurexTests(tests, t)
   209  }