pev_4_versbd.cpp
Go to the documentation of this file.
1 // @file pev_4_versbd.cpp verification of Yiheng's SBD example
2 
3 
4 
5 #include "libfaudes.h"
6 
7 using namespace faudes;
8 
9 
10 int main(int argc, char* argv[]) {
11 
12 
13  // prepare results
14  ConsoleOut::G()->Verb(1);
16  EventPriorities prios;
17 
18  // read priorities
19  prios.Read("data/pev_4_prios.alph");
20 
21  // read models
22  gvoi.Clear();
23  gvoi.Append(FairGenerator("data/pev_4_sbd_m12.gen"));
24  gvoi.Append(FairGenerator("data/pev_4_sbd_p2.gen"));
25  gvoi.Append(FairGenerator("data/pev_4_sbd_take_l2.gen"));
26  gvoi.Append(FairGenerator("data/pev_4_one_wpon_cb.gen"));
27  gvoi.Append(FairGenerator("data/pev_4_sbd_send2.gen"));
28  gvoi.Append(FairGenerator("data/pev_4_g_rbpm_coupl.gen"));
29  gvoi.Append(FairGenerator("data/pev_4_sbd_m22.gen"));
30 
31  // do compositional verification
32  std::cout<<"starting compositional verification" << std::endl;
33  auto start = std::clock();
34  bool isnc = IsPFNonblocking(gvoi,prios);
35  std::cout<<"duration in seconds: "<<ToStringFloat((std::clock()-start)/(double) CLOCKS_PER_SEC)<<std::endl;
36  if(isnc)
37  std::cout<<"p-nonconflicting test passed"<<std::endl;
38  else
39  std::cout<<"p-nonconflicting test failed [testcase ERROR]"<<std::endl;
40 
41  // record test case
42  FAUDES_TEST_DUMP("prio comp ver",isnc);
43 
44  // read models (without "wpon")
45  gvoi.Clear();
46  gvoi.Append(FairGenerator("data/pev_4_sbd_m12.gen"));
47  gvoi.Append(FairGenerator("data/pev_4_sbd_p2.gen"));
48  gvoi.Append(FairGenerator("data/pev_4_sbd_take_l2.gen"));
49  gvoi.Append(FairGenerator("data/pev_4_sbd_send2.gen"));
50  gvoi.Append(FairGenerator("data/pev_4_g_rbpm_coupl.gen"));
51  gvoi.Append(FairGenerator("data/pev_4_sbd_m22.gen"));
52 
53  // do compositional verification
54  std::cout<<"starting compositional verification" << std::endl;
55  start = std::clock();
56  bool isnnc = IsPFNonblocking(gvoi,prios);
57  std::cout<<"duration in seconds: "<<ToStringFloat((std::clock()-start)/(double) CLOCKS_PER_SEC)<<std::endl;
58  if(isnnc)
59  std::cout<<"p-nonconflicting test passed [testcase ERROR]"<<std::endl;
60  else
61  std::cout<<"p-nonconflicting test failed"<<std::endl;
62 
63  // record test case
64  FAUDES_TEST_DUMP("prio comp ver",isnnc); // done
65  return 0;
66 
67 }
#define FAUDES_TEST_DUMP(mes, dat)
Definition: cfl_utils.h:505
static ConsoleOut * G(void)
Definition: cfl_utils.cpp:456
void Verb(int verb)
Definition: cfl_utils.h:357
virtual void Append(const Type &rElem)
virtual void Clear(void)
bool IsPFNonblocking(const FairGeneratorVector &rPGvec, const EventPriorities &rPrios)
std::string ToStringFloat(Float number)
Definition: cfl_utils.cpp:64
TpGenerator< AttributePGenGl, AttributeVoid, AttributePriority, AttributeVoid > FairGenerator
int main(int argc, char *argv[])

libFAUDES 2.33l --- 2025.09.16 --- c++ api documentaion by doxygen