github.com/llvm-mirror/llgo@v0.0.0-20190322182713-bf6f0a60fce1/test/execution/strings/runetostring.go (about) 1 // RUN: llgo -o %t %s 2 // RUN: %t 2>&1 | FileCheck %s 3 4 // CHECK: test( 46 ) 5 // CHECK-NEXT: . 6 // CHECK-NEXT: 46 7 // CHECK-NEXT: 0 46 8 // CHECK-NEXT: test( 169 ) 9 // CHECK-NEXT: © 10 // CHECK-NEXT: 194 11 // CHECK-NEXT: 169 12 // CHECK-NEXT: 0 169 13 // CHECK-NEXT: test( 8364 ) 14 // CHECK-NEXT: € 15 // CHECK-NEXT: 226 16 // CHECK-NEXT: 130 17 // CHECK-NEXT: 172 18 // CHECK-NEXT: 0 8364 19 // CHECK-NEXT: test( 66560 ) 20 // CHECK-NEXT: 𐐀 21 // CHECK-NEXT: 240 22 // CHECK-NEXT: 144 23 // CHECK-NEXT: 144 24 // CHECK-NEXT: 128 25 // CHECK-NEXT: 0 66560 26 // CHECK-NEXT: .©€𐐀 27 // CHECK-NEXT: 4 4 4 28 // CHECK-NEXT: true 29 // CHECK-NEXT: true 30 // CHECK-NEXT: true 31 // CHECK-NEXT: true 32 // CHECK-NEXT: true 33 // CHECK-NEXT: true 34 // CHECK-NEXT: true 35 // CHECK-NEXT: true 36 37 package main 38 39 func test(r rune) { 40 println("test(", r, ")") 41 s := string(r) 42 println(s) 43 for i := 0; i < len(s); i++ { 44 println(s[i]) 45 } 46 for i, r := range s { 47 println(i, r) 48 } 49 } 50 51 type namedRune rune 52 53 func testslice(r1 []rune) { 54 s := string(r1) 55 println(s) 56 r2 := []rune(s) 57 r3 := []namedRune(s) 58 println(len(r1), len(r2), len(r3)) 59 if len(r2) == len(r1) && len(r3) == len(r1) { 60 for i := range r2 { 61 println(r1[i] == r2[i]) 62 println(r1[i] == rune(r3[i])) 63 } 64 } 65 } 66 67 func main() { 68 var runes = []rune{'.', '©', '€', '𐐀'} 69 test(runes[0]) 70 test(runes[1]) 71 test(runes[2]) 72 test(runes[3]) 73 testslice(runes) 74 }