349 lines
No EOL
9.6 KiB
Markdown
349 lines
No EOL
9.6 KiB
Markdown
---
|
|
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;
|
|
}
|
|
``` |