summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2018-08-16 08:16:44 +0200
committerRico Tzschichholz <ricotz@ubuntu.com>2018-08-16 08:22:34 +0200
commite5d50c5dfd38ee9f9b7f889b8d15254376a193d9 (patch)
treea7eef3fe89fbcb3fa4093ddc3bd687c88119c0cd /tests
parent743287e62a0254f505c8907867475f3a5a2d9b98 (diff)
downloadvala-e5d50c5dfd38ee9f9b7f889b8d15254376a193d9.tar.gz
glib-2.0: Add float.parse/try_parse()
https://gitlab.gnome.org/GNOME/vala/issues/649
Diffstat (limited to 'tests')
-rw-r--r--tests/basic-types/floats.vala72
1 files changed, 72 insertions, 0 deletions
diff --git a/tests/basic-types/floats.vala b/tests/basic-types/floats.vala
index e0e8aef6b..903a4c1bf 100644
--- a/tests/basic-types/floats.vala
+++ b/tests/basic-types/floats.vala
@@ -45,6 +45,9 @@ void test_double () {
string s = d.to_string ();
assert (s == "42");
+ d = double.parse ("47.11mm");
+ assert (d == 47.11);
+
unowned string unparsed;
double.try_parse ("3.45mm", out d, out unparsed);
assert (d == 3.45);
@@ -63,6 +66,75 @@ void test_double () {
assert (d2 == 10);
}
+void test_float () {
+ // declaration and initialization
+ float f = 42f;
+ assert (f == 42f);
+
+ // assignment
+ f = 23f;
+ assert (f == 23f);
+
+ // access
+ float g = f;
+ assert (g == 23f);
+
+ // +
+ f = 42f + 23f;
+ assert (f == 65f);
+
+ // -
+ f = 42f - 23f;
+ assert (f == 19f);
+
+ // *
+ f = 42f * 23f;
+ assert (f == 966f);
+
+ // /
+ f = 42f / 23f;
+ assert (f > 1.8);
+ assert (f < 1.9);
+
+ // equality and relational
+ f = 42f;
+ assert (f == 42f);
+ assert (f != 50f);
+ assert (f < 42.5f);
+ assert (!(f < 41.5f));
+ assert (f <= 42f);
+ assert (!(f <= 41.5f));
+ assert (f >= 42f);
+ assert (!(f >= 42.5f));
+ assert (f > 41.5f);
+ assert (!(f > 42.5f));
+
+ // to_string
+ string s = f.to_string ();
+ assert (s == "42");
+
+ f = float.parse ("47.11mm");
+ assert (f == 47.11f);
+
+ unowned string unparsed;
+ float.try_parse ("3.45mm", out f, out unparsed);
+ assert (f == 3.45f);
+ assert (unparsed == "mm");
+
+ // ensure that MIN and MAX are valid values
+ f = float.MIN;
+ assert (f == float.MIN);
+ assert (f < float.MAX);
+ f = float.MAX;
+ assert (f == float.MAX);
+ assert (f > float.MIN);
+
+ // nullable
+ float? f2 = 10f;
+ assert (f2 == 10f);
+}
+
void main () {
test_double ();
+ test_float ();
}