diff --git a/test/simulator/hei_sim_main.cpp b/test/simulator/hei_sim_main.cpp
index 46de629..166b54e 100644
--- a/test/simulator/hei_sim_main.cpp
+++ b/test/simulator/hei_sim_main.cpp
@@ -7,7 +7,7 @@
     void * buffer = nullptr;
     size_t sz_buffer = 0;
 
-    initialize( buffer, sz_buffer );
+    initialize(buffer, sz_buffer);
 
     Chip c1, c2;
 
@@ -17,7 +17,7 @@
 
     IsolationData isoData;
 
-    isolate( chipList, isoData );
+    isolate(chipList, isoData);
 
     uninitialize();
 
diff --git a/test/simulator/hei_sim_user_interface.cpp b/test/simulator/hei_sim_user_interface.cpp
index c3baeb3..073ae22 100644
--- a/test/simulator/hei_sim_user_interface.cpp
+++ b/test/simulator/hei_sim_user_interface.cpp
@@ -7,21 +7,21 @@
 
 //------------------------------------------------------------------------------
 
-ReturnCode registerRead( void * i_chip, void * o_buffer, size_t & io_bufSize,
-                         uint64_t i_regType, uint64_t i_address )
+ReturnCode registerRead(void * i_chip, void * o_buffer, size_t & io_bufSize,
+                        uint64_t i_regType, uint64_t i_address)
 {
     ReturnCode rc;
 
-    HEI_ASSERT( nullptr != i_chip );
-    HEI_ASSERT( nullptr != o_buffer );
-    HEI_ASSERT( 0 != io_bufSize );
+    HEI_ASSERT(nullptr != i_chip);
+    HEI_ASSERT(nullptr != o_buffer);
+    HEI_ASSERT(0 != io_bufSize);
 
-    switch ( i_regType )
+    switch (i_regType)
     {
         default:
             rc = RC_REG_ACCESS_FAILURE;
-            HEI_ERR( "registerRead(%p,%p,%lx,%lx,%lx)", i_chip, o_buffer,
-                     io_bufSize, i_regType, i_address );
+            HEI_ERR("registerRead(%p,%p,%lx,%lx,%lx)", i_chip, o_buffer,
+                    io_bufSize, i_regType, i_address);
     }
 
     return rc;
@@ -31,21 +31,21 @@
 
 #ifndef __HEI_READ_ONLY
 
-ReturnCode registerWrite( void * i_chip, void * i_buffer, size_t & io_bufSize,
-                          uint64_t i_regType, uint64_t i_address )
+ReturnCode registerWrite(void * i_chip, void * i_buffer, size_t & io_bufSize,
+                         uint64_t i_regType, uint64_t i_address)
 {
     ReturnCode rc;
 
-    HEI_ASSERT( nullptr != i_chip );
-    HEI_ASSERT( nullptr != i_buffer );
-    HEI_ASSERT( 0 != io_bufSize );
+    HEI_ASSERT(nullptr != i_chip);
+    HEI_ASSERT(nullptr != i_buffer);
+    HEI_ASSERT(0 != io_bufSize);
 
-    switch ( i_regType )
+    switch (i_regType)
     {
         default:
             rc = RC_REG_ACCESS_FAILURE;
-            HEI_ERR( "registerWrite(%p,%p,%lx,%lx,%lx)", i_chip, i_buffer,
-                     io_bufSize, i_regType, i_address );
+            HEI_ERR("registerWrite(%p,%p,%lx,%lx,%lx)", i_chip, i_buffer,
+                    io_bufSize, i_regType, i_address);
     }
 
     return rc;
@@ -56,4 +56,3 @@
 //------------------------------------------------------------------------------
 
 } // end namespace libhei
-
