blob: adebe7d2115cb6dc8c7e6591a0c828139dcd4dc9 [file] [log] [blame] [edit]
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
//
// Dart test program for testing native float arrays.
// VMOptions=--optimization_counter_threshold=10 --no-background_compilation
// Library tag to be able to run in html test framework.
library FloatArrayTest;
import "package:expect/expect.dart";
import 'dart:typed_data';
void testIndexOf32() {
var list = new Float32List(10);
for (int i = 0; i < list.length; i++) {
list[i] = i + 10.0;
}
// These used to be type errors when passing integers to indexOf() which
// expects a double, but are no longer an error because of int-to-double.
Expect.equals(0, list.indexOf(10));
Expect.equals(5, list.indexOf(15));
Expect.equals(9, list.indexOf(19));
Expect.equals(-1, list.indexOf(20));
}
void testBadValues32() {
var list = new Float32List(10);
list[0] = 2.0;
list[0] = 2; // Not an error because of int-to-double.
list[0] = "hello";
// ^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.INVALID_ASSIGNMENT
// [cfe] A value of type 'String' can't be assigned to a variable of type 'double'.
}
void testIndexOf64() {
var list = new Float64List(10);
for (int i = 0; i < list.length; i++) {
list[i] = i + 10.0;
}
// These used to be type errors when passing integers to indexOf() which
// expects a double, but are no longer an error because of int-to-double.
Expect.equals(0, list.indexOf(10));
Expect.equals(5, list.indexOf(15));
Expect.equals(9, list.indexOf(19));
Expect.equals(-1, list.indexOf(20));
}
void testBadValues64() {
var list = new Float64List(10);
list[0] = 2.0;
list[0] = 2; // Not an error because of int-to-double.
list[0] = "hello";
// ^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.INVALID_ASSIGNMENT
// [cfe] A value of type 'String' can't be assigned to a variable of type 'double'.
}
main() {
testIndexOf32();
testIndexOf64();
testBadValues32();
testBadValues64();
}