blob: e6a8c5de413dec62952f068b4c10e7256a8ba384 [file] [log] [blame]
Peter Collingbournead9841e2014-11-27 00:06:42 +00001// 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
37package main
38
39func 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
51type namedRune rune
52
53func 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
67func 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}