title: Minimum Rotations Unlock Circular Lock
signature: pub fn minimum_rotations_unlock_circular_lock(input: i32, unlock_code: i32) -> i32 {
test_code: use std::collections::HashMap;
  use std::collections::HashSet;
  use std::cmp::*;
  use std::collections::*;
  use std::fmt::*; 
  
  
  // SOLUTION CODE
  // ============================================
  PLACEHOLDER_CODE_BODY
  
  // TESTING CODE 
  // ============================================
  pub fn validate_solution(actual: i32, expected: i32)->bool{
  return actual==expected
  }
  pub fn driver(input: i32, unlock_code: i32, expected: i32)->String{
      if validate_solution(PLACEHOLDER_FN_NAME(input, unlock_code), expected) {
        return "PASSED".to_string();
      };
      return "FAILED".to_string();
  
  }
  
  fn main() {
      println!("TEST-0...{}", driver(
        71, 46, 
        8
      ));
      
      println!("TEST-1...{}", driver(
        90, 65, 
        8
      ));
      
      println!("TEST-2...{}", driver(
        28, 84, 
        8
      ));
      
      println!("TEST-3...{}", driver(
        41, 23, 
        4
      ));
      
      println!("TEST-4...{}", driver(
        32, 58, 
        6
      ));
      
      println!("TEST-5...{}", driver(
        39, 82, 
        8
      ));
      
      println!("TEST-6...{}", driver(
        33, 58, 
        7
      ));
      
      println!("TEST-7...{}", driver(
        89, 32, 
        8
      ));
      
      println!("TEST-8...{}", driver(
        50, 51, 
        1
      ));
      
      println!("TEST-9...{}", driver(
        92, 77, 
        7
      ));
      
  }
source_py: def minimum_rotations_unlock_circular_lock(input, unlock_code):
      rotation = 0
      while ((input > 0) or (unlock_code > 0)):
          input_digit = (input % 10)
          code_digit = (unlock_code % 10)
          rotation += min(abs((input_digit - code_digit)), (10 - abs((input_digit - code_digit))))
          input = int((input / 10))
          unlock_code = int((unlock_code / 10))
      return rotation
source_cpp: int minimum_rotations_unlock_circular_lock(int input, int unlock_code) {
    int rotation = 0;
    int input_digit, code_digit;
    while ( input || unlock_code ) {
      input_digit = input % 10;
      code_digit = unlock_code % 10;
      rotation += min ( abs ( input_digit - code_digit ), 10 - abs ( input_digit - code_digit ) );
      input /= 10;
      unlock_code /= 10;
    }
    return rotation;
  }