;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès ;;; Copyright © 2014 Eric Bavier ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (test-combinators) #:use-module (guix combinators) #:use-module (srfi srfi-1) #:use-module (srfi srfi-64) #:use-module (ice-9 vlist)) (test-begin "combinators") (test-equal "fold2, 1 list" (list (reverse (iota 5)) (map - (reverse (iota 5)))) (call-with-values (lambda () (fold2 (lambda (i r1 r2) (values (cons i r1) (cons (- i) r2))) '() '() (iota 5))) list)) (test-equal "fold2, 2 lists" (list (reverse '((a . 0) (b . 1) (c . 2) (d . 3))) (reverse '((a . 0) (b . -1) (c . -2) (d . -3)))) (call-with-values (lambda () (fold2 (lambda (k v r1 r2) (values (alist-cons k v r1) (alist-cons k (- v) r2))) '() '() '(a b c d) '(0 1 2 3))) list)) (let* ((tree (alist->vhash '((0 2 3) (1 3 4) (2) (3 5 6) (4 6) (5) (6)) hashq)) (add-one (lambda (_ r) (1+ r))) (tree-lookup (lambda (n) (cdr (vhash-assq n tree))))) (test-equal "fold-tree, single root" 5 (fold-tree add-one 0 tree-lookup '(0))) (test-equal "fold-tree, two roots" 7 (fold-tree add-one 0 tree-lookup '(0 1))) (test-equal "fold-tree, sum" 16 (fold-tree + 0 tree-lookup '(0))) (test-equal "fold-tree, internal" 18 (fold-tree + 0 tree-lookup '(3 4))) (test-equal "fold-tree, cons" '(1 3 4 5 6) (sort (fold-tree cons '() tree-lookup '(1)) <)) (test-equal "fold-tree, overlapping paths" '(1 3 4 5 6) (sort (fold-tree cons '() tree-lookup '(1 4)) <)) (test-equal "fold-tree, cons, two roots" '(0 2 3 4 5 6) (sort (fold-tree cons '() tree-lookup '(0 4)) <)) (test-equal "fold-tree-leaves, single root" 2 (fold-tree-leaves add-one 0 tree-lookup '(1))) (test-equal "fold-tree-leaves, single root, sum" 11 (fold-tree-leaves + 0 tree-lookup '(1))) (test-equal "fold-tree-leaves, two roots" 3 (fold-tree-leaves add-one 0 tree-lookup '(0 1))) (test-equal "fold-tree-leaves, two roots, sum" 13 (fold-tree-leaves + 0 tree-lookup '(0 1)))) (test-end) m Flashner 2020-06-16gnu: guile-sdl2: Update to 0.5.0....* gnu/packages/sdl.scm (guile-sdl2): Update to 0.5.0. Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Danny O'Brien 2020-04-11Merge branch 'master' into core-updatesMarius Bakke 2020-04-10gnu: sdl-pango: Shorten file name of patch....* gnu/packages/patches/sdl-pango-fix-explicit-SDLPango_CopyFTBitmapTo.patch: Rename to... * gnu/packages/patches/sdl-pango-header-guard.patch: ... this. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/sdl.scm (sdl-pango): Likewise. Ludovic Courtès 2020-04-08Merge branch 'master' into core-updates... Conflicts: etc/news.scm gnu/local.mk gnu/packages/check.scm gnu/packages/cross-base.scm gnu/packages/gimp.scm gnu/packages/java.scm gnu/packages/mail.scm gnu/packages/sdl.scm gnu/packages/texinfo.scm gnu/packages/tls.scm gnu/packages/version-control.scm Marius Bakke 2020-04-02gnu: sdl2: Update to 2.0.12....* gnu/packages/patches/sdl2-mesa-compat.patch: Delete file. * gnu/packages/sdl.scm (sdl2): Update to 2.0.12. [source]: Drop patch that was included in this release. Signed-off-by: Marius Bakke <mbakke@fastmail.com> Timotej Lazar 2020-04-02gnu: sdl2: Use udev to discover input devices....Without udev SDL falls back on custom detection code, which blocks every three seconds while checking for new devices. * gnu/packages/sdl.scm (sdl2)[inputs]: Add eudev. [arguments]<#:make-flags>: Add LDFLAGS to include eudev in rpath so that dlopen can find it. Signed-off-by: Marius Bakke <mbakke@fastmail.com> Timotej Lazar 2020-03-18Merge branch 'master' into core-updatesMarius Bakke 2020-03-14gnu: Add guile3.0-sdl2....* gnu/packages/sdl.scm (guile3.0-sdl2): New variable. Ricardo Wurmus 2020-03-10Merge branch 'master' into core-updatesMarius Bakke 2020-03-06gnu: sdl-pango: Rename patch to fix guix lint warning about patch filename size....* gnu/packages/patches/sdl-pango-fix-explicit-SDLPango_CopyFTBitmapToSurface.patch: Rename to ... * gnu/packages/patches/sdl-pango-fix-explicit-SDLPango_CopyFTBitmapTo.patch: ... this. * gnu/local.mk: Update accordingly. * gnu/packages/sdl.scm: Update accordingly. Vagrant Cascadian