packages feed

egison-2.4.1: sample/graph-test.egi

(load "lib/graph.egi")

(define $g1 {<node 1 {2 3 4 5} {2 3 4 5}>
             <node 2 {1 3} {1 3}>
             <node 3 {1 2 4} {1 2 4}>
             <node 4 {1 3 5} {1 3 5}>
             <node 5 {1 4} {1 4}>})

(define $g2 {<node 1 {2} {2}>
             <node 2 {1 3} {1 3}>
             <node 3 {2 4} {2 4}>
             <node 4 {3 5} {3 5}>
             <node 5 {4} {4}>})

(test (hamilton-cycle g1))
(test {{1 2 3 4 5} {1 5 4 3 2} {2 1 5 4 3} {2 3 4 5 1} {3 2 1 5 4} {3 4 5 1 2} {4 3 2 1 5} {4 5 1 2 3} {5 1 2 3 4} {5 4 3 2 1}})

(test (hamilton-path g1))
(test {{1 2 3 4 5} {1 5 4 3 2} {2 1 3 4 5} {2 1 5 4 3} {2 3 1 4 5} {2 3 1 5 4} {2 3 4 1 5} {2 3 4 5 1} {3 2 1 4 5} {3 2 1 5 4} {3 4 5 1 2} {4 3 2 1 5} {4 5 1 2 3} {4 5 1 3 2} {5 1 2 3 4} {5 1 4 3 2} {5 4 1 2 3} {5 4 1 3 2} {5 4 3 1 2} {5 4 3 2 1}})

(test (hamilton-cycle g2))
(test {})

(test (hamilton-path g2))
(test {{1 2 3 4 5} {5 4 3 2 1}})