---
title: "Test Highlight"
date: 2022-08-26T22:29:10+08:00
draft: true
---

## Test for C
```c
#define UNICODE
#include <windows.h>

int main(int argc, char **argv) {
 int speed = 0, speed1 = 0, speed2 = 0; // 1-20
 printf("Set Mouse Speed by Maverick\n");

 SystemParametersInfo(SPI_GETMOUSESPEED, 0, &speed, 0);
 printf("Current speed: %2d\n", speed);

 if (argc == 1) return 0;
 if (argc >= 2) sscanf(argv[1], "%d", &speed1);
 if (argc >= 3) sscanf(argv[2], "%d", &speed2);

 if (argc == 2) // set speed to first value
   speed = speed1;
 else if (speed == speed1 || speed == speed2) // alternate
   speed = speed1 + speed2 - speed;
 else
   speed = speed1;  // start with first value

 SystemParametersInfo(SPI_SETMOUSESPEED, 0,  speed, 0);
 SystemParametersInfo(SPI_GETMOUSESPEED, 0, &speed, 0);
 printf("New speed:     %2d\n", speed);
 return 0;
}
```

## Test for Java

```java
import java.util.Map;
import java.util.TreeSet;

public class GetEnv {
 /**
  * let's test generics
  * @param args the command line arguments
  */
 public static void main(String[] args) {
   // get a map of environment variables
   Map<String, String> env = System.getenv();
   // build a sorted set out of the keys and iterate
   for(String k: new TreeSet<String>(env.keySet())) {
     System.out.printf("%s = %s\n", k, env.get(k));
   }
 }
}
```

## Test for Perl

```perl
#!perl -w

# Time-stamp: <2002/04/06, 13:12:13 (EST), maverick, csvformat.pl>
# Two pass CSV file to table formatter

$delim = $#ARGV >= 1 ? $ARGV[1] : ',';
print STDERR "Split pattern: $delim\n";

# first pass
open F, "<$ARGV[0]" or die;
while(<F>)
{
 chomp;
 $i = 0;
 map { $max[$_->[1]] = $_->[0] if $_->[0] > ($max[$_->[1]] || 0) }
   (map {[length $_, $i++]} split($delim));
}
close F;

print STDERR 'Field width:   ', join(', ', @max), "\n";
print STDERR join(' ', map {'-' x $_} @max);

# second pass
open F, "<$ARGV[0]" or die;
while(<F>)
 {
 chomp;
 $i = 0;
 map { printf("%-$max[$_->[1]]s ", $_->[0]) }
   (map {[$_, $i++]} split($delim));
 print "\n";
}
close F;
```

## Test for Python

```python
# test python (sample from offlineimap)

class ExitNotifyThread(Thread):
   """This class is designed to alert a "monitor" to the fact that a thread has
   exited and to provide for the ability for it to find out why."""
   def run(self):
       global exitthreads, profiledir
       self.threadid = thread.get_ident()
       try:
           if not profiledir:          # normal case
               Thread.run(self)
           else:
               try:
                   import cProfile as profile
               except ImportError:
                   import profile
               prof = profile.Profile()
               try:
                   prof = prof.runctx("Thread.run(self)", globals(), locals())
               except SystemExit:
                   pass
               prof.dump_stats( \
                           profiledir + "/" + str(self.threadid) + "_" + \
                           self.getName() + ".prof")
       except:
           self.setExitCause('EXCEPTION')
           if sys:
               self.setExitException(sys.exc_info()[1])
               tb = traceback.format_exc()
               self.setExitStackTrace(tb)
       else:
           self.setExitCause('NORMAL')
       if not hasattr(self, 'exitmessage'):
           self.setExitMessage(None)

       if exitthreads:
           exitthreads.put(self, True)

   def setExitCause(self, cause):
       self.exitcause = cause
   def getExitCause(self):
       """Returns the cause of the exit, one of:
       'EXCEPTION' -- the thread aborted because of an exception
       'NORMAL' -- normal termination."""
       return self.exitcause
   def setExitException(self, exc):
       self.exitexception = exc
   def getExitException(self):
       """If getExitCause() is 'EXCEPTION', holds the value from
       sys.exc_info()[1] for this exception."""
       return self.exitexception
   def setExitStackTrace(self, st):
       self.exitstacktrace = st
   def getExitStackTrace(self):
       """If getExitCause() is 'EXCEPTION', returns a string representing
       the stack trace for this exception."""
       return self.exitstacktrace
   def setExitMessage(self, msg):
       """Sets the exit message to be fetched by a subsequent call to
       getExitMessage.  This message may be any object or type except
       None."""
       self.exitmessage = msg
   def getExitMessage(self):
       """For any exit cause, returns the message previously set by
       a call to setExitMessage(), or None if there was no such message
       set."""
       return self.exitmessage
```

## Test for Bash

```bash
#!/bin/bash
cd $ROOT_DIR
DOT_FILES="lastpass weechat ssh Xauthority"
for dotfile in $DOT_FILES; do conform_link "$DATA_DIR/$dotfile" ".$dotfile"; done

# TODO: refactor with suffix variables (or common cron values)

case "$PLATFORM" in
   linux)
       #conform_link "$CONF_DIR/shell/zshenv" ".zshenv"
       crontab -l > $ROOT_DIR/tmp/crontab-conflict-arch
       cd $ROOT_DIR/$CONF_DIR/cron
       if [[ "$(diff ~/tmp/crontab-conflict-arch crontab-current-arch)" == ""
           ]];
           then # no difference with current backup
               logger "$LOG_PREFIX: crontab live settings match stored "\
                   "settings; no restore required"
               rm ~/tmp/crontab-conflict-arch
           else # current crontab settings in file do not match live settings
               crontab $ROOT_DIR/$CONF_DIR/cron/crontab-current-arch
               logger "$LOG_PREFIX: crontab stored settings conflict with "\
                   "live settings; stored settings restored. "\
                   "Previous settings recorded in ~/tmp/crontab-conflict-arch."
       fi
   ;;
```
## Test for Haskell
```haskell
{-# LANGUAGE OverloadedStrings #-}
module Main where

--import Prelude hiding (id)
--import Control.Category (id)
import Control.Arrow ((>>>), (***), arr)
import Control.Monad (forM_)
-- import Data.Monoid (mempty, mconcat)

-- import System.FilePath

import Hakyll


main :: IO ()
main = hakyll $ do

   route   "css/*" $ setExtension "css"
   compile "css/*" $ byExtension (error "Not a (S)CSS file")
       [ (".css",  compressCssCompiler)
       , (".scss", sass)
       ]

   route   "js/**" idRoute
   compile "js/**" copyFileCompiler

   route   "img/*" idRoute
   compile "img/*" copyFileCompiler

   compile "templates/*" templateCompiler

   forM_ ["test.md", "index.md"] $ \page -> do
       route   page $ setExtension "html"
       compile page $ pageCompiler
           >>> applyTemplateCompiler "templates/default.html"
           >>> relativizeUrlsCompiler

sass :: Compiler Resource String
sass = getResourceString >>> unixFilter "sass" ["-s", "--scss"]
                        >>> arr compressCss
```
## Test for PHP
```php
<?php
require_once($GLOBALS['g_campsiteDir']. "/$ADMIN_DIR/country/common.php");
require_once($GLOBALS['g_campsiteDir']. "/classes/SimplePager.php");
camp_load_translation_strings("api");

$f_country_language_selected = camp_session_get('f_language_selected', '');
$f_country_offset = camp_session_get('f_country_offset', 0);
if (empty($f_country_language_selected)) {
   $f_country_language_selected = null;
}
$ItemsPerPage = 20;
$languages = Language::GetLanguages(null, null, null, array(), array(), true);
$numCountries = Country::GetNumCountries($f_country_language_selected);

$pager = new SimplePager($numCountries, $ItemsPerPage, "index.php?");

$crumbs = array();
$crumbs[] = array(getGS("Configure"), "");
$crumbs[] = array(getGS("Countries"), "");
echo camp_html_breadcrumbs($crumbs);

?>

<?php  if ($g_user->hasPermission("ManageCountries")) { ?>
<table BORDER="0" CELLSPACING="0" CELLPADDING="1">
   <tr>
       <td><a href="add.php"><?php putGS("Add new"); ?></a></td>
   </tr>
</table>
```
## Test for Javascript
```js
import isTypedArray from 'lodash/isTypedArray';
import reverse from 'lodash/reverse';
import sortBy from 'lodash/sortBy';
import take from 'lodash/take';
import { food101Classes } from './food101';
export function food101topK(classProbabilities, k = 5) {
 const probs = isTypedArray(classProbabilities)
   ? Array.prototype.slice.call(classProbabilities)
   : classProbabilities;
 const sorted = reverse(
   sortBy(
     probs.map((prob, index) => [ prob, index ]),
     probIndex => probIndex[0]
   )
 );
 const topK = take(sorted, k).map(probIndex => {
   const iClass = food101Classes[probIndex[1]];
   return {
     id: probIndex[1],
     name: iClass.replace(/_/, ' '),
     probability: probIndex[0]
   };
 });
 return topK;
};
```
## Test for HTML
```html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<title>A Tiny Page</title>
<style type="text/css">
<!--
     p { font-size:15pt; color:#000 }
   -->
</style></head><!-- real comment -->
<body bgcolor="#FFFFFF" text="#000000" link="#0000CC">
<script language="javascript" type="text/javascript">
     function changeHeight(h) {
       var tds = document.getElementsByTagName("td");
       for(var i = 0; i < tds.length; i++) {
         tds[i].setAttribute("height", h + "px");
     }}
</script>
<h1>abc</h1>
<h2>def</h2>
<p>Testing page</p>
</body></html>
```
## Test for CSS
```css
/*
Monokai style - ported by Luigi Maselli - http://grigio.org
*/
hljs {
 display: block;
 overflow-x: auto;
 padding: 0.5em;
 background: #272822; color: #ddd;
}
hljs-tag,
hljs-keyword,
hljs-selector-tag,
hljs-literal,
hljs-strong,
hljs-name {
 color: #f92672;
}
hljs-code {
 color: #66d9ef;
}
hljs-class .hljs-title {
 color: white;
}
```