| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 // | 4 // |
| 5 // Dart test program for testing native float arrays. | 5 // Dart test program for testing native float arrays. |
| 6 | 6 |
| 7 // VMOptions=--optimization_counter_threshold=10 --no-background_compilation | 7 // VMOptions=--optimization_counter_threshold=10 --no-background_compilation |
| 8 | 8 |
| 9 // Library tag to be able to run in html test framework. | 9 // Library tag to be able to run in html test framework. |
| 10 library FloatArrayTest; | 10 library FloatArrayTest; |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 63 Expect.throws(() { | 63 Expect.throws(() { |
| 64 floatArray.setRange(3, 4, list); | 64 floatArray.setRange(3, 4, list); |
| 65 }); | 65 }); |
| 66 } | 66 } |
| 67 | 67 |
| 68 void testIndexOf32() { | 68 void testIndexOf32() { |
| 69 var list = new Float32List(10); | 69 var list = new Float32List(10); |
| 70 for (int i = 0; i < list.length; i++) { | 70 for (int i = 0; i < list.length; i++) { |
| 71 list[i] = i + 10.0; | 71 list[i] = i + 10.0; |
| 72 } | 72 } |
| 73 Expect.equals(0, list.indexOf(10)); | |
| 74 Expect.equals(5, list.indexOf(15)); | |
| 75 Expect.equals(9, list.indexOf(19)); | |
| 76 Expect.equals(-1, list.indexOf(20)); | |
| 77 | |
| 78 list = new Float32List(10); | |
| 79 for (int i = 0; i < list.length; i++) { | |
| 80 list[i] = i + 10.0; | |
| 81 } | |
| 82 Expect.equals(0, list.indexOf(10.0)); | 73 Expect.equals(0, list.indexOf(10.0)); |
| 83 Expect.equals(5, list.indexOf(15.0)); | 74 Expect.equals(5, list.indexOf(15.0)); |
| 84 Expect.equals(9, list.indexOf(19.0)); | 75 Expect.equals(9, list.indexOf(19.0)); |
| 85 Expect.equals(-1, list.indexOf(20.0)); | 76 Expect.equals(-1, list.indexOf(20.0)); |
| 86 } | 77 } |
| 87 | 78 |
| 88 void testBadValues32() { | |
| 89 var list = new Float32List(10); | |
| 90 list[0] = 2.0; | |
| 91 Expect.throws(() { | |
| 92 list[0] = 2; | |
| 93 }); | |
| 94 Expect.throws(() { | |
| 95 list[0] = "hello"; | |
| 96 }); | |
| 97 } | |
| 98 | |
| 99 void testCreateFloat64Array() { | 79 void testCreateFloat64Array() { |
| 100 Float64List floatArray; | 80 Float64List floatArray; |
| 101 | 81 |
| 102 floatArray = new Float64List(0); | 82 floatArray = new Float64List(0); |
| 103 Expect.equals(0, floatArray.length); | 83 Expect.equals(0, floatArray.length); |
| 104 | 84 |
| 105 floatArray = new Float64List(10); | 85 floatArray = new Float64List(10); |
| 106 Expect.equals(10, floatArray.length); | 86 Expect.equals(10, floatArray.length); |
| 107 for (int i = 0; i < 10; i++) { | 87 for (int i = 0; i < 10; i++) { |
| 108 Expect.equals(0.0, floatArray[i]); | 88 Expect.equals(0.0, floatArray[i]); |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 147 Expect.throws(() { | 127 Expect.throws(() { |
| 148 floatArray.setRange(3, 4, list); | 128 floatArray.setRange(3, 4, list); |
| 149 }); | 129 }); |
| 150 } | 130 } |
| 151 | 131 |
| 152 void testIndexOf64() { | 132 void testIndexOf64() { |
| 153 var list = new Float64List(10); | 133 var list = new Float64List(10); |
| 154 for (int i = 0; i < list.length; i++) { | 134 for (int i = 0; i < list.length; i++) { |
| 155 list[i] = i + 10.0; | 135 list[i] = i + 10.0; |
| 156 } | 136 } |
| 157 Expect.equals(0, list.indexOf(10)); | |
| 158 Expect.equals(5, list.indexOf(15)); | |
| 159 Expect.equals(9, list.indexOf(19)); | |
| 160 Expect.equals(-1, list.indexOf(20)); | |
| 161 | |
| 162 list = new Float64List(10); | |
| 163 for (int i = 0; i < list.length; i++) { | |
| 164 list[i] = i + 10.0; | |
| 165 } | |
| 166 Expect.equals(0, list.indexOf(10.0)); | 137 Expect.equals(0, list.indexOf(10.0)); |
| 167 Expect.equals(5, list.indexOf(15.0)); | 138 Expect.equals(5, list.indexOf(15.0)); |
| 168 Expect.equals(9, list.indexOf(19.0)); | 139 Expect.equals(9, list.indexOf(19.0)); |
| 169 Expect.equals(-1, list.indexOf(20.0)); | 140 Expect.equals(-1, list.indexOf(20.0)); |
| 170 } | 141 } |
| 171 | 142 |
| 172 void testBadValues64() { | |
| 173 var list = new Float64List(10); | |
| 174 list[0] = 2.0; | |
| 175 Expect.throws(() { | |
| 176 list[0] = 2; | |
| 177 }); | |
| 178 Expect.throws(() { | |
| 179 list[0] = "hello"; | |
| 180 }); | |
| 181 } | |
| 182 | |
| 183 storeIt32(Float32List a, int index, value) { | 143 storeIt32(Float32List a, int index, value) { |
| 184 a[index] = value; | 144 a[index] = value; |
| 185 } | 145 } |
| 186 | 146 |
| 187 storeIt64(Float64List a, int index, value) { | 147 storeIt64(Float64List a, int index, value) { |
| 188 a[index] = value; | 148 a[index] = value; |
| 189 } | 149 } |
| 190 | 150 |
| 191 testPolymorphicLoad(var list) { | 151 testPolymorphicLoad(var list) { |
| 192 return list[0]; | 152 return list[0]; |
| (...skipping 16 matching lines...) Expand all Loading... |
| 209 testIndexOutOfRange64(); | 169 testIndexOutOfRange64(); |
| 210 testIndexOf64(); | 170 testIndexOf64(); |
| 211 storeIt64(a64, 1, 2.0); | 171 storeIt64(a64, 1, 2.0); |
| 212 testPolymorphicLoad(a64); | 172 testPolymorphicLoad(a64); |
| 213 } | 173 } |
| 214 var f32x4 = new Float32x4List(5); | 174 var f32x4 = new Float32x4List(5); |
| 215 for (int i = 0; i < 20; i++) { | 175 for (int i = 0; i < 20; i++) { |
| 216 testPolymorphicLoad(f32x4); | 176 testPolymorphicLoad(f32x4); |
| 217 } | 177 } |
| 218 | 178 |
| 219 // These two take a long time in checked mode. | |
| 220 testBadValues32(); | |
| 221 testBadValues64(); | |
| 222 // Check optimized (inlined) version of []= | 179 // Check optimized (inlined) version of []= |
| 223 Expect.throws(() { | 180 Expect.throws(() { |
| 224 storeIt32(a32, 1, 2); | 181 storeIt32(a32, 1, 2); |
| 225 }); | 182 }); |
| 226 Expect.throws(() { | 183 Expect.throws(() { |
| 227 storeIt64(a64, 1, 2); | 184 storeIt64(a64, 1, 2); |
| 228 }); | 185 }); |
| 229 } | 186 } |
| OLD | NEW |