|
From: <koc...@us...> - 2009-10-04 14:27:56
|
Revision: 403
http://scstudio.svn.sourceforge.net/scstudio/?rev=403&view=rev
Author: kocianon
Date: 2009-10-04 14:27:45 +0000 (Sun, 04 Oct 2009)
Log Message:
-----------
constrain checker bugfix
Modified Paths:
--------------
trunk/src/check/time/constrain_check.cpp
trunk/tests/constrain_check_test.cpp
Modified: trunk/src/check/time/constrain_check.cpp
===================================================================
--- trunk/src/check/time/constrain_check.cpp 2009-10-04 13:35:05 UTC (rev 402)
+++ trunk/src/check/time/constrain_check.cpp 2009-10-04 14:27:45 UTC (rev 403)
@@ -28,8 +28,10 @@
if(found_constrain==m_active_constrains.end())
{
- if(constrain->get_ref_node_b()==n)
+ if(constrain->get_ref_node_b()==n && constrain->get_ref_node_a()!=n)
+ {
throw constrain.get();
+ }
m_active_constrains.insert(constrain);
}
@@ -102,9 +104,9 @@
HMscPtr p;
DFSBMscGraphTraverser traverser;
traverser.add_white_node_found_listener(this);
- traverser.add_gray_node_found_listener(this);
- traverser.add_black_node_found_listener(this);
- traverser.add_node_finished_listener(this);
+// traverser.add_gray_node_found_listener(this);
+// traverser.add_black_node_found_listener(this);
+// traverser.add_node_finished_listener(this);
try
{
traverser.traverse(hmsc);
Modified: trunk/tests/constrain_check_test.cpp
===================================================================
--- trunk/tests/constrain_check_test.cpp 2009-10-04 13:35:05 UTC (rev 402)
+++ trunk/tests/constrain_check_test.cpp 2009-10-04 14:27:45 UTC (rev 403)
@@ -64,6 +64,39 @@
std::cerr << "OK sdfs" << std::endl;
ret = 0;
}
+ std::cerr << "################333" << std::endl;
+
+ HMscPtr hmsc2(new HMsc(L"HMsc2"));
+
+ StartNodePtr start2 = new StartNode();
+ hmsc2->set_start(start2);
+
+ ReferenceNodePtr r1(new ReferenceNode());
+
+ EndNodePtr end2(new EndNode());
+
+ hmsc2->add_node(r1);
+ hmsc2->add_node(end2);
+
+ start2->add_successor(r1.get());
+ r1->add_successor(end2.get());
+
+ TimeRelationRefNodePtr node_relation_2 = new TimeRelationRefNode(inter);
+ node_relation_2->glue_ref_nodes(false,r1.get(),true,r1.get());
+
+ HMscTimeConstrainChecker constrain_checker2;
+ HMscPtr resul = constrain_checker2.check(hmsc2,chm);
+ if(resul.get())
+ {
+ std::cerr << "3 Chyba v omezenich" << std::endl;
+ ret=1;
+ }
+ else
+ {
+ std::cerr << "3 OK sdfs" << std::endl;
+ ret = 0;
+ }
+
return ret;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|