github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/builtins/core/ranges/index_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/lang/expressions" 11 "github.com/lmorg/murex/test" 12 ) 13 14 func TestRangeLegacyByIndex(t *testing.T) { 15 tests := []test.MurexTest{ 16 // FLAGGED 17 18 // Include 19 { 20 Block: `a: [January..December] -> @[6..10]i`, 21 Stdout: "June\nJuly\nAugust\nSeptember\nOctober\n", 22 }, 23 { 24 Block: `a: [January..December] -> @[6..]i`, 25 Stdout: "June\nJuly\nAugust\nSeptember\nOctober\nNovember\nDecember\n", 26 }, 27 { 28 Block: `a: [January..December] -> @[..6]i`, 29 Stdout: "January\nFebruary\nMarch\nApril\nMay\nJune\n", 30 }, 31 32 // Exclude 33 { 34 Block: `a: [January..December] -> @[6..10]ie`, 35 Stdout: "July\nAugust\nSeptember\n", 36 }, 37 { 38 Block: `a: [January..December] -> @[6..]ie`, 39 Stdout: "July\nAugust\nSeptember\nOctober\nNovember\nDecember\n", 40 }, 41 { 42 Block: `a: [January..December] -> @[..6]ie`, 43 Stdout: "January\nFebruary\nMarch\nApril\nMay\n", 44 }, 45 } 46 47 test.RunMurexTests(tests, t) 48 } 49 50 func TestRangeIndexByIndex(t *testing.T) { 51 tests := []test.MurexTest{ 52 // FLAGGED 53 54 // Include 55 { 56 Block: `a: [January..December] -> [6..10]i`, 57 Stdout: "June\nJuly\nAugust\nSeptember\nOctober\n", 58 }, 59 { 60 Block: `a: [January..December] -> [6..]i`, 61 Stdout: "June\nJuly\nAugust\nSeptember\nOctober\nNovember\nDecember\n", 62 }, 63 { 64 Block: `a: [January..December] -> [..6]i`, 65 Stdout: "January\nFebruary\nMarch\nApril\nMay\nJune\n", 66 }, 67 68 // Exclude 69 { 70 Block: `a: [January..December] -> [6..10]ie`, 71 Stdout: "July\nAugust\nSeptember\n", 72 }, 73 { 74 Block: `a: [January..December] -> [6..]ie`, 75 Stdout: "July\nAugust\nSeptember\nOctober\nNovember\nDecember\n", 76 }, 77 { 78 Block: `a: [January..December] -> [..6]ie`, 79 Stdout: "January\nFebruary\nMarch\nApril\nMay\n", 80 }, 81 82 // DEFAULTED 83 84 // Include 85 { 86 Block: `a: [January..December] -> [6..10]`, 87 Stdout: "June\nJuly\nAugust\nSeptember\nOctober\n", 88 }, 89 { 90 Block: `a: [January..December] -> [6..]`, 91 Stdout: "June\nJuly\nAugust\nSeptember\nOctober\nNovember\nDecember\n", 92 }, 93 { 94 Block: `a: [January..December] -> [..6]`, 95 Stdout: "January\nFebruary\nMarch\nApril\nMay\nJune\n", 96 }, 97 98 // Exclude 99 { 100 Block: `a: [January..December] -> [6..10]e`, 101 Stdout: "July\nAugust\nSeptember\n", 102 }, 103 { 104 Block: `a: [January..December] -> [6..]e`, 105 Stdout: "July\nAugust\nSeptember\nOctober\nNovember\nDecember\n", 106 }, 107 { 108 Block: `a: [January..December] -> [..6]e`, 109 Stdout: "January\nFebruary\nMarch\nApril\nMay\n", 110 }, 111 } 112 113 test.RunMurexTests(tests, t) 114 } 115 116 func TestRangeIndexByNegativeIndex(t *testing.T) { 117 tests := []test.MurexTest{ 118 // FLAGGED 119 120 // Include 121 { 122 Block: `a: [January..December] -> [-6..-3]i`, 123 Stdout: "July\nAugust\nSeptember\n", 124 }, 125 { 126 Block: `a: [January..December] -> [-6..]i`, 127 Stdout: "July\nAugust\nSeptember\nOctober\nNovember\nDecember\n", 128 }, 129 /*{ 130 Block: `a: [January..December] -> [..-6]i`, 131 Stdout: "January\nFebruary\nMarch\nApril\nMay\nJune\n", 132 },*/ 133 134 // Exclude 135 { 136 Block: `a: [January..December] -> [-6..-3]ie`, 137 Stdout: "August\nSeptember\n", 138 }, 139 { 140 Block: `a: [January..December] -> [-6..]ie`, 141 Stdout: "August\nSeptember\nOctober\nNovember\nDecember\n", 142 }, 143 /*{ 144 Block: `a: [January..December] -> [..-6]ie`, 145 Stdout: "January\nFebruary\nMarch\nApril\nMay\nJune\n", 146 },*/ 147 148 // DEFAULTED 149 150 // Include 151 { 152 Block: `a: [January..December] -> [-6..-3]`, 153 Stdout: "July\nAugust\nSeptember\n", 154 }, 155 { 156 Block: `a: [January..December] -> [-6..]`, 157 Stdout: "July\nAugust\nSeptember\nOctober\nNovember\nDecember\n", 158 }, 159 /*{ 160 Block: `a: [January..December] -> [..-6]`, 161 Stdout: "January\nFebruary\nMarch\nApril\nMay\nJune\n", 162 },*/ 163 164 // Exclude 165 { 166 Block: `a: [January..December] -> [-6..-3]e`, 167 Stdout: "August\nSeptember\n", 168 }, 169 { 170 Block: `a: [January..December] -> [-6..]e`, 171 Stdout: "August\nSeptember\nOctober\nNovember\nDecember\n", 172 }, 173 /*{ 174 Block: `a: [January..December] -> [..-6]e`, 175 Stdout: "January\nFebruary\nMarch\nApril\nMay\nJune\n", 176 },*/ 177 } 178 179 test.RunMurexTests(tests, t) 180 }