summaryrefslogtreecommitdiff
path: root/util/util.cpp
blob: 612a27f589cafd6b49b74b6d8bc9d08d4377c7f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include "stdafx.h"
#include "goodies.h"

unsigned occasion = 0;
bool goingAway = false;

bool isPrime(int n) { 
	int z = 2;
	while( 1 ) { 
		if( z*z > n )
			break;
		if( n % z == 0 )
			return false;
		z++;
	}
	return true;
}

int nextPrime(int n) { 
	n |= 1; // 2 goes to 3...don't care...
	while( !isPrime(n) )
		n += 2;
	return n;
}

struct UtilTest { 
	UtilTest() { 
		assert( WrappingInt(0) <= WrappingInt(0) );
		assert( WrappingInt(0) <= WrappingInt(1) );
		assert( !(WrappingInt(1) <= WrappingInt(0)) );
		assert( (WrappingInt(0xf0000000) <= WrappingInt(0)) );
		assert( (WrappingInt(0xf0000000) <= WrappingInt(9000)) );
		assert( !(WrappingInt(300) <= WrappingInt(0xe0000000)) );

		assert( tdiff(3, 4) == 1 ); 
		assert( tdiff(4, 3) == -1 ); 
		assert( tdiff(0xffffffff, 0) == 1 ); 

		assert( isPrime(3) );
		assert( isPrime(2) );
		assert( isPrime(13) );
		assert( isPrime(17) );
		assert( !isPrime(9) );
		assert( !isPrime(6) );
		assert( nextPrime(4) == 5 );
		assert( nextPrime(8) == 11 );
	}
} utilTest;