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 }