Commit 288dbe64 authored by Denis Shirshov's avatar Denis Shirshov

7. refactored testing (tab-tree -> sbgn-lisp)

parent db21b19c
#lang racket
(require "../server/libs/odysseus/lib/_all.rkt")
(require "../server/libs/odysseus/knowledge-base/tab-tree.rkt")
(require "../server/libs/odysseus/knowledge-base/utils.rkt")
(require "../server/libs/odysseus/knowledge-base/template-functions.rkt")
(require "../server/libs/odysseus/knowledge-base/html.rkt")
(require "../server/libs/odysseus/tabtree-format/tab-tree.rkt")
(require "../server/libs/odysseus/tabtree-format/utils.rkt")
(require "../server/libs/odysseus/tabtree-format/template-functions.rkt")
(require "../server/libs/odysseus/tabtree-format/html.rkt")
(require "../server/libs/odysseus/ontology/kvlist.rkt")
(require "../server/libs/odysseus_modules/pd2af/translate.rkt")
(require "../server/libs/odysseus_modules/sbgn/sexp2ctx.rkt")
(require "../server/libs/odysseus_modules/sbgn/ctx2xml.rkt")
(require "../server/libs/odysseus_modules/sbgn/sexp.rkt")
(require "../server/libs/odysseus_modules/sbgn/common.rkt")
(require "../server/libs/odysseus_modules/sbgn/test.rkt")
(require "template-functions.rkt")
(require "../tests/test-case-macros.rkt")
(define-namespace-anchor a)
(define ns (namespace-anchor->namespace a))
; (write-file "../html/index.html" (process-html-template "../templates/index.t" #:tabtree-root "../knowledge" #:namespace ns))
(write-file "../html/specification.html" (process-html-template "../templates/specification.t" #:tabtree-root "../specification" #:namespace ns))
(write-file "../html/specification.html" (process-html-template "../templates/specification.t" #:tabtree-root "../tests" #:namespace ns))
; (write-file "../html/translator.html" (process-html-template "../templates/translator.t" #:tabtree-root "../knowledge" #:namespace ns))
......@@ -4,14 +4,14 @@
(require "../server/libs/odysseus/lib/_all.rkt")
(require "../server/libs/odysseus/graphics/svg.rkt")
(require "../server/libs/odysseus/knowledge-base/tab-tree.rkt")
(require "../server/libs/odysseus/knowledge-base/html.rkt")
(require "../server/libs/odysseus/tabtree-format/tab-tree.rkt")
(require "../server/libs/odysseus/tabtree-format/html.rkt")
(require "../server/libs/odysseus_modules/sbgn/sexp2ctx.rkt")
; (require "../../../../sbgn-pd2af/server/sbgn/translate.rkt")
(provide (all-defined-out))
(define ns (module->namespace (string->path "../server/libs/odysseus_modules/sbgn/sexp2ctx.rkt")))
(define ns (module->namespace (string->path "gen-html.rkt")))
; (define newt-prefix-url "http://web.newteditor.org/?URL=https://denis-shirshov.ru/for/alexander-mazein/rules")
(define newt-prefix-url "http://web.newteditor.org/?URL=http://pd2af.rusvegia.com/rules-auto")
......@@ -141,3 +141,6 @@
(w (* 0.8 w0)))
(~a w))
(~a 0)))
(define-catch (go-through-tests test-file)
(read-data-from-file test-file ns))
......@@ -7,7 +7,7 @@ angular
$interpolateProvider.endSymbol(')#')
})
.controller("specification_controller", function($scope) {
var N = 10;
var N = 30;
$scope.show = Array(N).fill(false);
$scope.bugs = Array(N).fill(false);
......@@ -23,11 +23,11 @@ angular
}
$scope.increment_passed = function(n) {
$scope.passed[n] ++;
$scope.passed[n]++;
}
$scope.increment_failed = function(n) {
$scope.failed[n] ++;
$scope.failed[n]++;
}
});
......@@ -36,7 +36,7 @@
<p>For convenient implementation of Converter function, we have developed some infrastructure around it. The resulted system is shown on the picture above. The modules of the system are:
<ul>
<li><a href="https://gitlab.com/ddenniss/odysseus/blob/master/knowledge-base/html.rkt">Webpages Generator</a> - Processes html and css templates into correspondent html, css and svg files. Works like similar template engines (e.g. JSP, Django Template Language or SASS), but also allows insertions of Racket code snippets.</li><li><a href="https://gitlab.com/ddenniss/odysseus/tree/master/knowledge-base">Knowledge Tree Reader</a> - Handles files in .tree format, specially invented for convenient textual encoding of the key-value objects in hierarchy. This model often comes to be useful when we need to structurize some knowledge field or put some cognitive map into the text.</li><li><a href="https://github.com/prozion/odysseus-modules/tree/master/sbgn-lisp">SBGN-Lisp Language</a> - Special lisp-like syntax and related tools that allow to write SBGN in the form of sexp expressions. This brings an opportunity to codify SBGN otherwise graphical diagrams in the textual way. It is far more convenient to work with, comparing to SBGN-ML which is usually used to save diagram in computer-readable format (XML), but fails to be readable by human.</li><li><a href="https://github.com/prozion/odysseus-modules/tree/master/pd2af">PD2AF Converter</a> - Translates SBGN PD diagrams into SBGN AF. Also converts XML (SBGN ML) to sexp expression, and sexp expression back to XML.</li>
<li><a href="https://gitlab.com/ddenniss/odysseus/blob/master/tabtree-format/html.rkt">Webpages Generator</a> - Processes html and css templates into correspondent html, css and svg files. Works like similar template engines (e.g. JSP, Django Template Language or SASS), but also allows insertions of Racket code snippets.</li><li><a href="https://gitlab.com/ddenniss/odysseus/tree/master/tabtree-format">Knowledge Tree Reader</a> - Handles files in .tree format, specially invented for convenient textual encoding of the key-value objects in hierarchy. This model often comes to be useful when we need to structurize some knowledge field or put some cognitive map into the text.</li><li><a href="https://github.com/prozion/odysseus-modules/tree/master/sbgn-lisp">SBGN-Lisp Language</a> - Special lisp-like syntax and related tools that allow to write SBGN in the form of sexp expressions. This brings an opportunity to codify SBGN otherwise graphical diagrams in the textual way. It is far more convenient to work with, comparing to SBGN-ML which is usually used to save diagram in computer-readable format (XML), but fails to be readable by human.</li><li><a href="https://github.com/prozion/odysseus-modules/tree/master/pd2af">PD2AF Converter</a> - Translates SBGN PD diagrams into SBGN AF. Also converts XML (SBGN ML) to sexp expression, and sexp expression back to XML.</li>
</ul>
</p>
......
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<sbgn xmlns="http://sbgn.org/libsbgn/0.2">
<map language="activity flow">
<glyph id="A" class="biological activity">
<label text="A" />
<bbox x="160.0" y="130.0" w="80" h="40" />
</glyph>
<glyph id="A-pentamer" class="biological activity">
<label text="A-pentamer" />
<bbox x="160.0" y="330.0" w="80" h="40" />
<glyph id="A-pentamer-uoi-12" class="unit of information">
<label text="" />
<entity name="macromolecule multimer" />
<bbox x="180.0" y="325.0" w="40" h="10" />
</glyph>
</glyph>
<arc class="positive influence" id="modulation-11" source="A" target="A-pentamer">
<start x="200.0" y="170.0" />
<end x="200.0" y="330.0" />
</arc>
</map>
</sbgn>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<sbgn xmlns="http://sbgn.org/libsbgn/0.2">
<map language="activity flow">
<glyph id="C" class="biological activity">
<label text="C" />
<bbox x="260.0" y="130.0" w="80" h="40" />
</glyph>
<glyph id="A1" class="biological activity">
<label text="A-active1" />
<bbox x="160.0" y="230.0" w="80" h="40" />
......@@ -9,15 +13,11 @@
<label text="A-active2" />
<bbox x="360.0" y="230.0" w="80" h="40" />
</glyph>
<glyph id="C" class="biological activity">
<label text="C" />
<bbox x="260.0" y="130.0" w="80" h="40" />
</glyph>
<arc class="negative influence" id="modulation-474" source="C" target="A1">
<arc class="negative influence" id="modulation-358" source="C" target="A1">
<start x="300.0" y="170.0" />
<end x="200.0" y="230.0" />
</arc>
<arc class="positive influence" id="modulation-475" source="C" target="A2">
<arc class="positive influence" id="modulation-359" source="C" target="A2">
<start x="300.0" y="170.0" />
<end x="400.0" y="230.0" />
</arc>
......
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<sbgn xmlns="http://sbgn.org/libsbgn/0.2">
<map language="process description">
<glyph id="C" class="macromolecule">
<label text="C" />
<bbox x="260.0" y="130.0" w="80" h="40" />
</glyph>
<glyph id="A1" class="macromolecule">
<label text="A" />
<bbox x="160.0" y="230.0" w="80" h="40" />
<glyph id="A1-state-variable-465" class="state variable">
<glyph id="A1-state-variable-356" class="state variable">
<state value="active1" variable="" />
<bbox x="230.0" y="222.5" w="15" h="15" />
</glyph>
......@@ -12,29 +16,25 @@
<glyph id="A2" class="macromolecule">
<label text="A" />
<bbox x="360.0" y="230.0" w="80" h="40" />
<glyph id="A2-state-variable-466" class="state variable">
<glyph id="A2-state-variable-357" class="state variable">
<state value="active2" variable="" />
<bbox x="430.0" y="222.5" w="15" h="15" />
</glyph>
</glyph>
<glyph id="C" class="macromolecule">
<label text="C" />
<bbox x="260.0" y="130.0" w="80" h="40" />
</glyph>
<glyph id="p1" class="process">
<glyph id="p" class="process">
<bbox x="288.0" y="238.0" w="24" h="24" />
<port id="p1-in" x="283.0" y="250.0" />
<port id="p1-out" x="317.0" y="250.0" />
<port id="p-in" x="283.0" y="250.0" />
<port id="p-out" x="317.0" y="250.0" />
</glyph>
<arc class="consumption" id="consumption-462" source="A1" target="p1-in">
<arc class="consumption" id="consumption-353" source="A1" target="p-in">
<start x="240.0" y="250.0" />
<end x="283.0" y="250.0" />
</arc>
<arc class="production" id="production-463" source="p1-out" target="A2">
<arc class="production" id="production-354" source="p-out" target="A2">
<start x="317.0" y="250.0" />
<end x="360.0" y="250.0" />
</arc>
<arc class="catalysis" id="modulation-464" source="C" target="p1">
<arc class="catalysis" id="modulation-355" source="C" target="p">
<start x="300.0" y="170.0" />
<end x="300.0" y="238.0" />
</arc>
......
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<sbgn xmlns="http://sbgn.org/libsbgn/0.2">
<map language="activity flow">
<glyph id="A1" class="biological activity">
<label text="A" />
<bbox x="260.0" y="230.0" w="80" h="40" />
</glyph>
<glyph id="C" class="biological activity">
<label text="C" />
<bbox x="260.0" y="130.0" w="80" h="40" />
</glyph>
<arc class="negative influence" id="modulation-324" source="C" target="A1">
<glyph id="A1" class="biological activity">
<label text="A" />
<bbox x="260.0" y="230.0" w="80" h="40" />
</glyph>
<arc class="negative influence" id="modulation-239" source="C" target="A1">
<start x="300.0" y="170.0" />
<end x="300.0" y="230.0" />
</arc>
......
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<sbgn xmlns="http://sbgn.org/libsbgn/0.2">
<map language="process description">
<glyph id="C" class="macromolecule">
<label text="C" />
<bbox x="260.0" y="130.0" w="80" h="40" />
</glyph>
<glyph id="A1" class="macromolecule">
<label text="A" />
<bbox x="160.0" y="230.0" w="80" h="40" />
<glyph id="A1-state-variable-318" class="state variable">
<glyph id="A1-state-variable-237" class="state variable">
<state value="active" variable="" />
<bbox x="230.0" y="222.5" w="15" h="15" />
</glyph>
......@@ -12,29 +16,25 @@
<glyph id="A2" class="macromolecule">
<label text="A" />
<bbox x="360.0" y="230.0" w="80" h="40" />
<glyph id="A2-state-variable-319" class="state variable">
<glyph id="A2-state-variable-238" class="state variable">
<state value="inactive" variable="" />
<bbox x="430.0" y="222.5" w="15" h="15" />
</glyph>
</glyph>
<glyph id="C" class="macromolecule">
<label text="C" />
<bbox x="260.0" y="130.0" w="80" h="40" />
</glyph>
<glyph id="p1" class="process">
<glyph id="p" class="process">
<bbox x="288.0" y="238.0" w="24" h="24" />
<port id="p1-in" x="283.0" y="250.0" />
<port id="p1-out" x="317.0" y="250.0" />
<port id="p-in" x="283.0" y="250.0" />
<port id="p-out" x="317.0" y="250.0" />
</glyph>
<arc class="consumption" id="consumption-315" source="A1" target="p1-in">
<arc class="consumption" id="consumption-234" source="A1" target="p-in">
<start x="240.0" y="250.0" />
<end x="283.0" y="250.0" />
</arc>
<arc class="production" id="production-316" source="p1-out" target="A2">
<arc class="production" id="production-235" source="p-out" target="A2">
<start x="317.0" y="250.0" />
<end x="360.0" y="250.0" />
</arc>
<arc class="catalysis" id="modulation-317" source="C" target="p1">
<arc class="catalysis" id="modulation-236" source="C" target="p">
<start x="300.0" y="170.0" />
<end x="300.0" y="238.0" />
</arc>
......
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<sbgn xmlns="http://sbgn.org/libsbgn/0.2">
<map language="activity flow">
<glyph id="A1" class="biological activity">
<label text="A-active1" />
<bbox x="160.0" y="230.0" w="80" h="40" />
</glyph>
<glyph id="A2" class="biological activity">
<label text="A-active2" />
<bbox x="360.0" y="230.0" w="80" h="40" />
</glyph>
<glyph id="C" class="macromolecule">
<label text="C" />
<bbox x="260.0" y="130.0" w="80" h="40" />
</glyph>
<arc class="positive influence" id="modulation-666" source="C" target="A1">
<start x="300.0" y="170.0" />
<end x="200.0" y="230.0" />
</arc>
<arc class="positive influence" id="modulation-667" source="C" target="A2">
<start x="300.0" y="170.0" />
<end x="400.0" y="230.0" />
</arc>
</map>
</sbgn>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<sbgn xmlns="http://sbgn.org/libsbgn/0.2">
<map language="process description">
<glyph id="A1" class="macromolecule">
<label text="A" />
<bbox x="160.0" y="230.0" w="80" h="40" />
<glyph id="A1-state-variable-664" class="state variable">
<state value="active1" variable="" />
<bbox x="230.0" y="222.5" w="15" h="15" />
</glyph>
</glyph>
<glyph id="A2" class="macromolecule">
<label text="A" />
<bbox x="360.0" y="230.0" w="80" h="40" />
<glyph id="A2-state-variable-665" class="state variable">
<state value="active2" variable="" />
<bbox x="430.0" y="222.5" w="15" h="15" />
</glyph>
</glyph>
<glyph id="C" class="macromolecule">
<label text="C" />
<bbox x="260.0" y="130.0" w="80" h="40" />
</glyph>
<glyph id="p" class="reversible process">
<bbox x="288.0" y="238.0" w="24" h="24" />
<port id="p-in" x="283.0" y="250.0" />
<port id="p-out" x="317.0" y="250.0" />
</glyph>
<arc class="consumption" id="consumption-661" source="A1" target="p-in">
<start x="240.0" y="250.0" />
<end x="283.0" y="250.0" />
</arc>
<arc class="production" id="production-662" source="p-out" target="A2">
<start x="317.0" y="250.0" />
<end x="360.0" y="250.0" />
</arc>
<arc class="catalysis" id="modulation-663" source="C" target="p">
<start x="300.0" y="170.0" />
<end x="300.0" y="238.0" />
</arc>
</map>
</sbgn>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<sbgn xmlns="http://sbgn.org/libsbgn/0.2">
<map language="activity flow">
<glyph id="C" class="biological activity">
<label text="C" />
<bbox x="260.0" y="130.0" w="80" h="40" />
</glyph>
<glyph id="A1" class="biological activity">
<label text="A-active1" />
<bbox x="160.0" y="230.0" w="80" h="40" />
......@@ -9,15 +13,11 @@
<label text="A-active2" />
<bbox x="360.0" y="230.0" w="80" h="40" />
</glyph>
<glyph id="C" class="biological activity">
<label text="C" />
<bbox x="260.0" y="130.0" w="80" h="40" />
</glyph>
<arc class="positive influence" id="modulation-579" source="C" target="A1">
<arc class="positive influence" id="modulation-439" source="C" target="A1">
<start x="300.0" y="170.0" />
<end x="200.0" y="230.0" />
</arc>
<arc class="negative influence" id="modulation-580" source="C" target="A2">
<arc class="negative influence" id="modulation-440" source="C" target="A2">
<start x="300.0" y="170.0" />
<end x="400.0" y="230.0" />
</arc>
......
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<sbgn xmlns="http://sbgn.org/libsbgn/0.2">
<map language="process description">
<glyph id="C" class="macromolecule">
<label text="C" />
<bbox x="260.0" y="130.0" w="80" h="40" />
</glyph>
<glyph id="A1" class="macromolecule">
<label text="A" />
<bbox x="160.0" y="230.0" w="80" h="40" />
<glyph id="A1-state-variable-570" class="state variable">
<glyph id="A1-state-variable-437" class="state variable">
<state value="active1" variable="" />
<bbox x="230.0" y="222.5" w="15" h="15" />
</glyph>
......@@ -12,29 +16,25 @@
<glyph id="A2" class="macromolecule">
<label text="A" />
<bbox x="360.0" y="230.0" w="80" h="40" />
<glyph id="A2-state-variable-571" class="state variable">
<glyph id="A2-state-variable-438" class="state variable">
<state value="active2" variable="" />
<bbox x="430.0" y="222.5" w="15" h="15" />
</glyph>
</glyph>
<glyph id="C" class="macromolecule">
<label text="C" />
<bbox x="260.0" y="130.0" w="80" h="40" />
</glyph>
<glyph id="p1" class="process">
<glyph id="p" class="process">
<bbox x="288.0" y="238.0" w="24" h="24" />
<port id="p1-in" x="283.0" y="250.0" />
<port id="p1-out" x="317.0" y="250.0" />
<port id="p-in" x="283.0" y="250.0" />
<port id="p-out" x="317.0" y="250.0" />
</glyph>
<arc class="consumption" id="consumption-567" source="A1" target="p1-in">
<arc class="consumption" id="consumption-434" source="A1" target="p-in">
<start x="240.0" y="250.0" />
<end x="283.0" y="250.0" />
</arc>
<arc class="production" id="production-568" source="p1-out" target="A2">
<arc class="production" id="production-435" source="p-out" target="A2">
<start x="317.0" y="250.0" />
<end x="360.0" y="250.0" />
</arc>
<arc class="inhibition" id="modulation-569" source="C" target="p1">
<arc class="inhibition" id="modulation-436" source="C" target="p">
<start x="300.0" y="170.0" />
<end x="300.0" y="238.0" />
</arc>
......
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<sbgn xmlns="http://sbgn.org/libsbgn/0.2">
<map language="activity flow">
<glyph id="A1" class="biological activity">
<label text="A" />
<bbox x="260.0" y="230.0" w="80" h="40" />
</glyph>
<glyph id="C" class="biological activity">
<label text="C" />
<bbox x="260.0" y="130.0" w="80" h="40" />
</glyph>
<arc class="positive influence" id="modulation-408" source="C" target="A1">
<glyph id="A1" class="biological activity">
<label text="A" />
<bbox x="260.0" y="230.0" w="80" h="40" />
</glyph>
<arc class="positive influence" id="modulation-305" source="C" target="A1">
<start x="300.0" y="170.0" />
<end x="300.0" y="230.0" />
</arc>
......
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<sbgn xmlns="http://sbgn.org/libsbgn/0.2">
<map language="process description">
<glyph id="C" class="macromolecule">
<label text="C" />
<bbox x="260.0" y="130.0" w="80" h="40" />
</glyph>
<glyph id="A1" class="macromolecule">
<label text="A" />
<bbox x="160.0" y="230.0" w="80" h="40" />
<glyph id="A1-state-variable-402" class="state variable">
<glyph id="A1-state-variable-303" class="state variable">
<state value="active" variable="" />
<bbox x="230.0" y="222.5" w="15" h="15" />
</glyph>
......@@ -12,29 +16,25 @@
<glyph id="A2" class="macromolecule">
<label text="A" />
<bbox x="360.0" y="230.0" w="80" h="40" />
<glyph id="A2-state-variable-403" class="state variable">
<glyph id="A2-state-variable-304" class="state variable">
<state value="inactive" variable="" />
<bbox x="430.0" y="222.5" w="15" h="15" />
</glyph>
</glyph>
<glyph id="C" class="macromolecule">
<label text="C" />
<bbox x="260.0" y="130.0" w="80" h="40" />
</glyph>
<glyph id="p1" class="process">
<glyph id="p" class="process">
<bbox x="288.0" y="238.0" w="24" h="24" />
<port id="p1-in" x="283.0" y="250.0" />
<port id="p1-out" x="317.0" y="250.0" />
<port id="p-in" x="283.0" y="250.0" />
<port id="p-out" x="317.0" y="250.0" />
</glyph>
<arc class="consumption" id="consumption-399" source="A1" target="p1-in">
<arc class="consumption" id="consumption-300" source="A1" target="p-in">
<start x="240.0" y="250.0" />
<end x="283.0" y="250.0" />
</arc>
<arc class="production" id="production-400" source="p1-out" target="A2">
<arc class="production" id="production-301" source="p-out" target="A2">
<start x="317.0" y="250.0" />
<end x="360.0" y="250.0" />
</arc>
<arc class="inhibition" id="modulation-401" source="C" target="p1">
<arc class="inhibition" id="modulation-302" source="C" target="p">
<start x="300.0" y="170.0" />
<end x="300.0" y="238.0" />
</arc>
......
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<sbgn xmlns="http://sbgn.org/libsbgn/0.2">
<map language="activity flow">
<glyph id="C" class="biological activity">
<label text="C" />
<bbox x="260.0" y="130.0" w="80" h="40" />
</glyph>
<glyph id="A1" class="biological activity">
<label text="A-active1" />
<bbox x="160.0" y="230.0" w="80" h="40" />
......@@ -9,15 +13,11 @@
<label text="A-active2" />
<bbox x="360.0" y="230.0" w="80" h="40" />
</glyph>
<glyph id="C" class="biological activity">
<label text="C" />
<bbox x="260.0" y="130.0" w="80" h="40" />
</glyph>
<arc class="unknown influence" id="modulation-544" source="C" target="A1">
<arc class="unknown influence" id="modulation-412" source="C" target="A1">
<start x="300.0" y="170.0" />
<end x="200.0" y="230.0" />
</arc>
<arc class="unknown influence" id="modulation-545" source="C" target="A2">
<arc class="unknown influence" id="modulation-413" source="C" target="A2">
<start x="300.0" y="170.0" />
<end x="400.0" y="230.0" />
</arc>
......
<
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<sbgn xmlns="http://sbgn.org/libsbgn/0.2">
<map language="process description">
<glyph id="C" class="macromolecule">
<label text="C" />
<bbox x="260.0" y="130.0" w="80" h="40" />
</glyph>
<glyph id="A1" class="macromolecule">
<label text="A" />
<bbox x="160.0" y="230.0" w="80" h="40" />
<glyph id="A1-state-variable-535" class="state variable">
<glyph id="A1-state-variable-410" class="state variable">
<state value="active1" variable="" />
<bbox x="230.0" y="222.5" w="15" h="15" />
</glyph>
......@@ -12,29 +16,25 @@
<glyph id="A2" class="macromolecule">
<label text="A" />
<bbox x="360.0" y="230.0" w="80" h="40" />
<glyph id="A2-state-variable-536" class="state variable">
<glyph id="A2-state-variable-411" class="state variable">
<state value="active2" variable="" />
<bbox x="430.0" y="222.5" w="15" h="15" />
</glyph>
</glyph>
<glyph id="C" class="macromolecule">
<label text="C" />
<bbox x="260.0" y="130.0" w="80" h="40" />
</glyph>
<glyph id="p1" class="process">
<glyph id="p" class="process">
<bbox x="288.0" y="238.0" w="24" h="24" />
<port id="p1-in" x="283.0" y="250.0" />
<port id="p1-out" x="317.0" y="250.0" />
<port id="p-in" x="283.0" y="250.0" />
<port id="p-out" x="317.0" y="250.0" />
</glyph>
<arc class="consumption" id="consumption-532" source="A1" target="p1-in">
<arc class="consumption" id="consumption-407" source="A1" target="p-in">
<start x="240.0" y="250.0" />
<end x="283.0" y="250.0" />
</arc>
<arc class="production" id="production-533" source="p1-out" target="A2">
<arc class="production" id="production-408" source="p-out" target="A2">