/* Test of <bitrotate.h> substitute.
- Copyright (C) 2007-2008 Free Software Foundation, Inc.
+ Copyright (C) 2007-2010 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include "bitrotate.h"
-#include <stdio.h>
-#include <stdlib.h>
-
-#define ASSERT(expr) \
- do \
- { \
- if (!(expr)) \
- { \
- fprintf (stderr, "%s:%d: assertion failed\n", \
- __FILE__, __LINE__); \
- fflush (stderr); \
- abort (); \
- } \
- } \
- while (0)
+#include "macros.h"
int
main (void)
{
+ ASSERT (rotl8 (42, 0) == 42);
ASSERT (rotl8 (42, 1) == 84);
ASSERT (rotl8 (42, 2) == 168);
ASSERT (rotl8 (42, 3) == 81);
ASSERT (rotl8 (42, 5) == 69);
ASSERT (rotl8 (42, 6) == 138);
ASSERT (rotl8 (42, 7) == 21);
+ ASSERT (rotl8 (42, 8) == 42);
+ ASSERT (rotr8 (42, 0) == 42);
ASSERT (rotr8 (42, 1) == 21);
ASSERT (rotr8 (42, 2) == 138);
ASSERT (rotr8 (42, 3) == 69);
ASSERT (rotr8 (42, 5) == 81);
ASSERT (rotr8 (42, 6) == 168);
ASSERT (rotr8 (42, 7) == 84);
+ ASSERT (rotr8 (42, 8) == 42);
+ ASSERT (rotl16 (43981, 0) == 43981);
ASSERT (rotl16 (43981, 1) == 22427);
ASSERT (rotl16 (43981, 2) == 44854);
ASSERT (rotl16 (43981, 3) == 24173);
ASSERT (rotl16 (43981, 13) == 46457);
ASSERT (rotl16 (43981, 14) == 27379);
ASSERT (rotl16 (43981, 15) == 54758);
+ ASSERT (rotl16 (43981, 16) == 43981);
+ ASSERT (rotr16 (43981, 0) == 43981);
ASSERT (rotr16 (43981, 1) == 54758);
ASSERT (rotr16 (43981, 2) == 27379);
ASSERT (rotr16 (43981, 3) == 46457);
ASSERT (rotr16 (43981, 13) == 24173);
ASSERT (rotr16 (43981, 14) == 44854);
ASSERT (rotr16 (43981, 15) == 22427);
+ ASSERT (rotr16 (43981, 16) == 43981);
ASSERT (rotl32 (2309737967U, 1) == 324508639U);
ASSERT (rotl32 (2309737967U, 2) == 649017278U);
ASSERT (rotr32 (2309737967U, 30) == 649017278lU);
ASSERT (rotr32 (2309737967U, 31) == 324508639lU);
-#if defined(UINT64_MAX) && defined(UINT64_C)
+#ifdef UINT64_MAX
ASSERT (rotl64 (16045690984503098046ULL, 1) == 13644637895296644477ULL);
ASSERT (rotl64 (16045690984503098046ULL, 2) == 8842531716883737339ULL);
ASSERT (rotl64 (16045690984503098046ULL, 3) == 17685063433767474678ULL);
ASSERT (rotl64 (16045690984503098046ULL, 62) == 13234794782980550319ULL);
ASSERT (rotl64 (16045690984503098046ULL, 63) == 8022845492251549023ULL);
- ASSERT (rotr64 (16045690984503098046ULL, 0) == 16045690984503098046ULL);
ASSERT (rotr64 (16045690984503098046ULL, 1) == 8022845492251549023ULL);
ASSERT (rotr64 (16045690984503098046ULL, 2) == 13234794782980550319ULL);
ASSERT (rotr64 (16045690984503098046ULL, 3) == 15840769428345050967ULL);
ASSERT (rotr64 (16045690984503098046ULL, 61) == 17685063433767474678ULL);
ASSERT (rotr64 (16045690984503098046ULL, 62) == 8842531716883737339ULL);
ASSERT (rotr64 (16045690984503098046ULL, 63) == 13644637895296644477ULL);
-#endif
+#endif /* UINT64_MAX */
return 0;
}