babashka/test-resources/lib_tests/loom/test/attr.cljc

31 lines
1.3 KiB
Clojure

(ns loom.test.attr
(:require [loom.graph :refer (digraph)]
[loom.attr :refer (add-attr attr add-attr-to-nodes add-attr-to-edges)]
#?@(:clj [[clojure.test :refer :all]]))
#?@(:cljs [(:require-macros [cljs.test :refer (deftest testing are is)])]))
(deftest attr-graph-test
(let [g (digraph [1 2] [2 3] [2 4] [3 5] [4 5])
lg1 (-> g
(add-attr 1 :label "node label")
(add-attr 2 3 :label "edge label"))
lg2 (-> g
(add-attr-to-nodes
:label "node odd" [1 3 5])
(add-attr-to-nodes
:label "node even" [2 4])
(add-attr-to-edges
:label "edge from node 2" [[2 3] [2 4]])
(add-attr-to-edges
:label "edge to node 5" [[3 5] [4 5]]))]
(is (= "node label" (attr lg1 1 :label)))
(is (= "edge label" (attr lg1 2 3 :label)))
(is (= "node odd" (attr lg2 1 :label)))
(is (= "node odd" (attr lg2 3 :label)))
(is (= "node odd" (attr lg2 5 :label)))
(is (= "node even" (attr lg2 2 :label)))
(is (= "node even" (attr lg2 4 :label)))
(is (= "edge from node 2" (attr lg2 2 3 :label)))
(is (= "edge from node 2" (attr lg2 2 4 :label)))
(is (= "edge to node 5" (attr lg2 3 5 :label)))
(is (= "edge to node 5" (attr lg2 4 5 :label)))))