packages feed

egison-2.0.0: sample/graph-test.egi

(define $g {<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 5} {1 5}>})

(test (match-all g Graph
        [<cons <node $n1 <cons $n2 _> _>
          <cons <node ,n2 <cons $n3 _> _>
           <cons <node ,n3 <cons ,n1 _> _>
            _>>>
         [n1 n2 n3]]))

(test (match-all g Graph
        [<cons <node $n1 <cons $n2 _> _>
          <cons <node ,n2 <cons $n3 _> _>
           <cons <node ,n3 <cons $n4 _> _>
            <cons <node ,n4 <cons $n5 _> _>
             <cons <node ,n5 <cons ,n1 _> _>
              _>>>>>
         [n1 n2 n3 n4 n5]]))

(test (match-all g Graph
        [<cons <node $n1 <cons $n2 _> _>
          <cons <node ,n2 <cons $n3 _> _>
           <cons <node ,n3 <cons $n4 _> _>
            <cons <node ,n4 <cons $n5 _> _>
             <cons <node ,n5 _ _>
              <nil>>>>>>
         [n1 n2 n3 n4 n5]]))

(test (hamilton-cycle g))

(test (hamilton-path g))