Beispiel #1
0
GraphNodePtrNN makeNewTree2(void)
{
  GraphNodePtrNN node1=makeNewNode();
  return makeNewNode( node1,
                      makeNewNode(
                        makeNewNode( makeNewLeaf(), node1 ), node1 ) );
}
Beispiel #2
0
struct  ListNode* addTwoNumbers(struct ListNode* l1,struct ListNode* l2)
{
	listNode* t1 = l1;
	listNode* t2 = l2;
	listNode* result = makeNewNode();
	listNode* p = 0;
	int c = 0;
	while (t1 != NULL || t2 != NULL || c != 0) 
	{
		if (p == 0) {
			p = result;
		}
		else {
			p->next = (listNode*)malloc(sizeof(listNode));
			p->next->val = 0;
			p = p->next;
		}
		int a = t1 != NULL ? t1->val : NULL;
		int b = t2 != NULL ? t2->val : NULL;
		int s = (a + b + c) % 10;
		c = (a + b + c) / 10;
		p->val = s;
		p->next = 0;
		t1 = t1->next == NULL ? NULL : t1->next;
		t2 = t2->next == NULL ? NULL : t2->next;
	}
	return result;
};
Beispiel #3
0
void testObj::test<4>(void)
{
  GraphNodePtrNN node=makeNewNode( makeNewLeaf( makeNewAlert(), 10u ), makeNewLeaf( makeNewAlert(), 20u ), 666u );
  vector<path>   files;
  files.push_back("idmef_10.xml");
  files.push_back("idmef_20.xml");
  ensureValid(node, files);
}
Beispiel #4
0
void testObj::test<2>(void)
{
  Strategy               s(InstanceName("myfiletrigger"), cfg_);
  Strategy::ChangedNodes nc;
  const time_t           start=time(NULL);
  s.process( makeNewNode(), nc );
  const time_t           stop =time(NULL);
  testFileInRange(".", start, stop);
}
Beispiel #5
0
void testObj::test<4>(void)
{
  // this test main part has to fit in <1[s] window - retru 5 times
  // if it does not happen
  for(int i=0; i<5; ++i)
  {
    Strategy               s(InstanceName("myfiletrigger"), cfg_);
    Strategy::ChangedNodes nc;

    // wait until seconds just changed - to make event as probable as possible
    // (yes - this is busy loop...)
    {
      time_t start=time(NULL);
      while( start==time(NULL) )
      {
      }
    }

    // no make double write
    const time_t start=time(NULL);
    s.process( makeNewNode(), nc );
    s.process( makeNewNode(), nc );
    const time_t stop =time(NULL);
    // if second elapsed there is nothing that can be done
    if(start!=stop)
      continue;

    // check for output files
    ensure("first output file does not exist",  testFile(".", start, 0)==0 );
    ensure("second output file does not exist", testFile(".", start, 1)==0 );
    // ok - if we're here, test succeeded.
    return;
  }

  // 5 fails means FAIL...
  fail("this test's main part has to fit in <1[s] time window and failed "
       "to do so 5 times. looks like your machine is to slow to perform "
       "this test - aborting");
}
Beispiel #6
0
void testObj::test<3>(void)
{
  const char *out="TEST_OUT_DIR";
  if( mkdir(out, 0755)!=0 )
    ensure("unable to create output dir", errno==EEXIST);
  const Config           cfg(out, cfg_.getThresholdConfig() );
  Strategy               s(InstanceName("myfiletrigger"), cfg);
  Strategy::ChangedNodes nc;
  const time_t           start=time(NULL);
  s.process( makeNewNode(), nc );
  const time_t           stop =time(NULL);
  testFileInRange(out, start, stop);
}
Beispiel #7
0
//adds new nodes to new list
void makeSets(linkedList oldList, linkedList newList, int minFrequ)
{
   Node<T>* temp1;
   Node<T>* temp2;
   Node<T>* newListTemp = newList.mHead;
   temp2 = oldList.mHead;
   
   while(temp2->mNext != NULL)
   {
      temp1 = temp2;
      temp2 = temp2->mNext;
      
      if(isSame(temp1, temp2))
         if(newList.mHead == NULL)
            newList.mHead = makeNewNode(temp1, temp2);
         else
         {
            newListTemp = newListTemp->mNext;
            newListTemp = makeNewNode(temp1, temp2);
         }
   }
}
Beispiel #8
0
// Adds a new empty node following the given node and returns a pointer to it
NODE* appendNewNode(NODE *node) {
  NODE *new_node = makeNewNode();
  if (node == NULL) {
    // We're starting a new cycle, make this node self-referential
    new_node->previous = new_node;
    new_node->next = new_node;
  } else {
    // Add the new node into the given cycle
    new_node->previous = node;
    new_node->next = node->next;
    node->next->previous = new_node;
    node->next = new_node;
  }
  return new_node;
}
Beispiel #9
0
void BMEsplitEdge(meTree *T, meNode *v, meEdge *e, double **A)
{
  meEdge *newPendantEdge;
  meEdge *newInternalEdge;
  meNode *newNode;
  char nodeLabel[NODE_LABEL_LENGTH];
  char edgeLabel1[EDGE_LABEL_LENGTH];
  char edgeLabel2[EDGE_LABEL_LENGTH];
  sprintf(nodeLabel,"I%d",T->size+1);
  sprintf(edgeLabel1,"E%d",T->size);
  sprintf(edgeLabel2,"E%d",T->size+1);
  

  /*make the new meNode and edges*/
  newNode = makeNewNode(nodeLabel,T->size+1);
  newPendantEdge = makeEdge(edgeLabel1,newNode,v,0.0);
  newInternalEdge = makeEdge(edgeLabel2,newNode,e->head,0.0);

  /*update the matrix of average distances*/
  BMEupdateAveragesMatrix(A,e,v,newNode);


  /*put them in the correct topology*/


  newNode->parentEdge = e;
  e->head->parentEdge = newInternalEdge;
  v->parentEdge = newPendantEdge;
  e->head = newNode;

  T->size = T->size + 2;    

  if (e->tail->leftEdge == e) 
    /*actually this is totally arbitrary and probably unnecessary*/
    {
      newNode->leftEdge = newInternalEdge;
      newNode->rightEdge = newPendantEdge;
    }
  else
    {
      newNode->leftEdge = newInternalEdge;
      newNode->rightEdge = newPendantEdge;
    }
}
Beispiel #10
0
void appendLocation (List l, LocationID location) {
    assert(l != NULL); // Ensure list is valid
    
    // Make a new node with the location
    NodePointer newNode = makeNewNode(location);
    
    
    if (l->first == NULL) {
        // List is empty
        // make first and last the new node
        l->first = newNode;
        l->last = newNode;
        
    } else {
        // List is not empty
        // update last, after adding new node
        l->last->next = newNode;
        l->last = l->last->next;
        
    }
    
    // Increment number of elements in list
    l->numElements++;
}
Beispiel #11
0
int main(void)
{
	listNode* l13 = makeNewNode(3, NULL);
	listNode* l12 = makeNewNode(4, l13);
	listNode* l1 = makeNewNode(2, l12);
	listNode* l23 = makeNewNode(4, NULL);
	listNode* l22 = makeNewNode(6, l23);
	listNode* l2 = makeNewNode(5, l22);
	listNode* output = addTwoNumbers(l1, l2);
	listNode* p = output;
	while (p->next != 0)
	{
		printf("%d->", p->val);
		p = p->next;
	}
	printf("%d\n",p->val);
	while (output->next != 0)
	{
		p = output;
		output = output->next;
		free(p);
	}
	return 0;
}
//--------------------------------------------------------------
void camApp::update(){

	updateAppInfo();

	if( title.state == NODE_ACTIVE && title.introAllDone() ){
		title.setState(NODE_DEACTIVATING);
		state = CAM_APP_NORMAL;
		durationSameDirection = 0.0;
	}
	
	if( title.state != NODE_INACTIVE ){
		titleUpdate();
	}

	if( howTo.state != NODE_INACTIVE ){
		if( howTo.timeActive < 1.0 ){
			magRotZStartHowTo = mag.angleZ;
		}
		
		howTo.update();
		if( fabs( ofAngleDifferenceDegrees(magRotZStartHowTo, mag.angleZ) ) > 120 ){
			howTo.playMovie();
		}
		
	}
		
	if( state == CAM_APP_TITLE && title.holdPerson() ){
		//camMan.setTargetPosX(currentNode->pos.x); 
		camMan.setTargetPosY(title.pos.y);
	}else{

		riseFallUpdate();	
		
		camShiftAmntY = ofLerp(camShiftAmntY, ofMap(riseFallPct, 0, 1, -(float)ofGetHeight() * 0.175, (float)ofGetHeight() * 0.175, true), 0.03);
		
		if( state == CAM_APP_NORMAL ){

			float endGraphicOffset = 210.0;
			percentOver = ofMap( fabs(myPerson.pos.y - (endGraphic.pos.y+endGraphicOffset) ), 1000, endGraphicOffset*0.5, 0.0, 1.0, true);
			
			if( percentOver >= 0.7 ){
				
				float pct	= ofMap(percentOver, 0.7, 1.0, 0.0, 1.0, true);
				float ipct	= 1.0-pct;
				
				myPerson.vel *= 0.7 + 0.3*ipct;
				myPerson.pos.x = ofLerp(myPerson.pos.x, endGraphic.pos.x, 0.01 + pct * 0.02);
				myPerson.pos.y = ofLerp(myPerson.pos.y, endGraphic.pos.y+endGraphicOffset, 0.01 + pct * 0.02);
				
				camMan.setTargetPosY(endGraphic.pos.y * pct + (myPerson.pos.y+camShiftAmntY) * ipct);			
			}else{
				camMan.setTargetPosY(myPerson.pos.y+camShiftAmntY);
			}
						
		}
		
		if( howTo.pct > 0.2 ){
			camMan.setTargetPosY(howToStorePos.y);
		}
			
		if( makeNewNode( ofGetHeight() ) ){

			if( state == CAM_APP_NORMAL && howTo.state == NODE_INACTIVE && ofGetElapsedTimef() - nodeCreatedTime > 1.2 ){

				if( myPerson.vel.y > 0.2 ){
					nextNode(true);
				}else if( myPerson.vel.y < -0.2 ){
					nextNode(false);		
				}
				
				nodeCreatedTime = ofGetElapsedTimef();
			}
		}
		
		if( state == CAM_APP_NORMAL && nodes.size() > 0 ){
			nodes.erase(nodes.begin(), partition(nodes.begin(), nodes.end(), killNodesAndDelete)); 		
		}

	}

	if( state == CAM_APP_HOWTO ){
		limitPersonMovement(howToStorePos, -ofGetWidth()/2, ofGetWidth()/2, -(float)ofGetHeight()*0.4, (float)ofGetHeight()*0.4);
	}	

	soundMan.update(riseFallPct);
	handleRiseFall();	
	
	camMan.update(0.1, 0.04);
	world.camPos = camMan.getPosition();
	world.camRot = camMan.getRotation();
	
	camPos = world.camPos;

	if( state != CAM_APP_TITLE && !( state == CAM_APP_HOWTO && howTo.state == NODE_ACTIVE ) ){
		for(int i = 0; i < nodes.size(); i++){
			nodes[i]->update();
		}
	}
	
	sceneGraph.clearElements();
	sceneGraph.addElement(&myPerson);
	sceneGraph.addElement(&weather);
	
	if( title.state != NODE_INACTIVE ){
		sceneGraph.addElement(&title);
	}
	
	for(int i = 0; i < nodes.size(); i++){
		sceneGraph.addElement(nodes[i]);
	}
	
	//MANUAL NODEs
	weather.update();
	hand.update();
}
Beispiel #13
0
GraphNodePtrNN makeNewTree1(void)
{
  return makeNewNode( makeNewNode(),
                      makeNewNode(
                         makeNewNode(), makeNewLeaf() ) );
}