diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2018-08-16 08:16:44 +0200 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2018-08-16 08:22:34 +0200 |
commit | e5d50c5dfd38ee9f9b7f889b8d15254376a193d9 (patch) | |
tree | a7eef3fe89fbcb3fa4093ddc3bd687c88119c0cd /tests | |
parent | 743287e62a0254f505c8907867475f3a5a2d9b98 (diff) | |
download | vala-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.vala | 72 |
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 (); } |