summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-04-08 22:01:44 +0200
committerLudovic Courtès <ludo@gnu.org>2014-04-08 22:01:44 +0200
commit1d6243cf70269acdaf32f1ad61beba241f130484 (patch)
treec095e485d515820680f74ae2bd321d00d91190de /tests
parentc397e502ca4f9a929e213e1c728b942a007ee278 (diff)
ui: Add 'size->number'.
* guix/scripts/gc.scm (size->number): Remove. * guix/ui.scm (size->number): New procedure. * tests/ui.scm ("size->number, bytes", "size->number, MiB", "size->number, GiB", "size->number, 1.2GiB", "size->number, invalid unit"): New tests.
Diffstat (limited to 'tests')
-rw-r--r--tests/ui.scm25
1 files changed, 24 insertions, 1 deletions
diff --git a/tests/ui.scm b/tests/ui.scm
index 08ee3967a8..886223ef54 100644
--- a/tests/ui.scm
+++ b/tests/ui.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -166,6 +166,29 @@ interface, and powerful string processing.")
#f
(string->duration "d"))
+(test-equal "size->number, bytes"
+ 42
+ (size->number "42"))
+
+(test-equal "size->number, MiB"
+ (* 42 (expt 2 20))
+ (size->number "42MiB"))
+
+(test-equal "size->number, GiB"
+ (* 3 (expt 2 30))
+ (size->number "3GiB"))
+
+(test-equal "size->number, 1.2GiB"
+ (inexact->exact (round (* 1.2 (expt 2 30))))
+ (size->number "1.2GiB"))
+
+(test-assert "size->number, invalid unit"
+ (catch 'quit
+ (lambda ()
+ (size->number "9X"))
+ (lambda args
+ #t)))
+
(test-end "ui")