D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
opt
/
lampp
/
lib
/
php
/
test
/
Science_Chemistry
/
tests
/
Filename :
Science_ChemistryTest.php
back
Copy
<?php require_once "PHPUnit/Framework/TestCase.php"; require_once "Science/Chemistry.php"; require_once "Science/Chemistry/Molecule_XYZ.php"; require_once "Science/Chemistry/Macromolecule.php"; class Science_ChemistryTest extends PHPUnit_Framework_TestCase { public function test() { ob_start(); ?> Creating and printing an atom N 2.3000 4.5000 -2.1000 Creating a second atom and calculating distance to first one C 1.2000 3.4000 -1.6000 Distance N to C: 1.6340 Angstroms ===== Reading a molecule: $m is a molecule: 1 10 his.xyz -20.000000 N 11.6200 -9.7070 11.6430 C 12.6170 -8.7040 12.0260 C 12.1040 -7.3050 12.2730 O 12.9290 -6.4050 12.5540 C 13.7340 -8.5610 10.9240 C 14.5460 -9.8200 10.8390 N 14.2870 -10.8480 9.9840 C 15.6250 -10.1840 11.5690 C 15.1760 -11.8080 10.1800 N 16.0140 -11.4260 11.1350 # Number of molecules: 2 # Molecule 1 10 his.xyz -20.000000 N 11.6200 -9.7070 11.6430 C 12.6170 -8.7040 12.0260 C 12.1040 -7.3050 12.2730 O 12.9290 -6.4050 12.5540 C 13.7340 -8.5610 10.9240 C 14.5460 -9.8200 10.8390 N 14.2870 -10.8480 9.9840 C 15.6250 -10.1840 11.5690 C 15.1760 -11.8080 10.1800 N 16.0140 -11.4260 11.1350 # Molecule 2 8 lys.xyz 0.000000 C 10.2020 -11.6530 11.9550 C 11.1880 -10.6400 12.4740 O 11.5620 -10.7470 13.6630 C 10.9750 -12.7980 11.2490 C 11.9300 -13.5300 12.2100 C 11.1470 -14.0260 13.4150 C 11.9850 -14.8510 14.3760 N 11.1060 -15.3590 15.4740 <molecule title="biggie" id="big"> <list title="molecules"> <molecule title="his.xyz" id="1"> <string title="name">his.xyz</string> <list title="atoms"> <atom title="atom" id="1"> <string title="name">N</string> <coordinate3 builtin="xyz3">11.6200 -9.7070 11.6430</coordinate3> </atom> <atom title="atom" id="2"> <string title="name">C</string> <coordinate3 builtin="xyz3">12.6170 -8.7040 12.0260</coordinate3> </atom> <atom title="atom" id="3"> <string title="name">C</string> <coordinate3 builtin="xyz3">12.1040 -7.3050 12.2730</coordinate3> </atom> <atom title="atom" id="4"> <string title="name">O</string> <coordinate3 builtin="xyz3">12.9290 -6.4050 12.5540</coordinate3> </atom> <atom title="atom" id="5"> <string title="name">C</string> <coordinate3 builtin="xyz3">13.7340 -8.5610 10.9240</coordinate3> </atom> <atom title="atom" id="6"> <string title="name">C</string> <coordinate3 builtin="xyz3">14.5460 -9.8200 10.8390</coordinate3> </atom> <atom title="atom" id="7"> <string title="name">N</string> <coordinate3 builtin="xyz3">14.2870 -10.8480 9.9840</coordinate3> </atom> <atom title="atom" id="8"> <string title="name">C</string> <coordinate3 builtin="xyz3">15.6250 -10.1840 11.5690</coordinate3> </atom> <atom title="atom" id="9"> <string title="name">C</string> <coordinate3 builtin="xyz3">15.1760 -11.8080 10.1800</coordinate3> </atom> <atom title="atom" id="10"> <string title="name">N</string> <coordinate3 builtin="xyz3">16.0140 -11.4260 11.1350</coordinate3> </atom> </list> <list title="connections"> <list title="connect" id="1">2</list> <list title="connect" id="2">3 5</list> <list title="connect" id="3">4</list> <list title="connect" id="5">6</list> <list title="connect" id="6">7 8</list> <list title="connect" id="7">9</list> <list title="connect" id="8">10</list> <list title="connect" id="9">10</list> </list> </molecule> <molecule title="lys.xyz" id="2"> <string title="name">lys.xyz</string> <list title="atoms"> <atom title="atom" id="1"> <string title="name">C</string> <coordinate3 builtin="xyz3">10.2020 -11.6530 11.9550</coordinate3> </atom> <atom title="atom" id="2"> <string title="name">C</string> <coordinate3 builtin="xyz3">11.1880 -10.6400 12.4740</coordinate3> </atom> <atom title="atom" id="3"> <string title="name">O</string> <coordinate3 builtin="xyz3">11.5620 -10.7470 13.6630</coordinate3> </atom> <atom title="atom" id="4"> <string title="name">C</string> <coordinate3 builtin="xyz3">10.9750 -12.7980 11.2490</coordinate3> </atom> <atom title="atom" id="5"> <string title="name">C</string> <coordinate3 builtin="xyz3">11.9300 -13.5300 12.2100</coordinate3> </atom> <atom title="atom" id="6"> <string title="name">C</string> <coordinate3 builtin="xyz3">11.1470 -14.0260 13.4150</coordinate3> </atom> <atom title="atom" id="7"> <string title="name">C</string> <coordinate3 builtin="xyz3">11.9850 -14.8510 14.3760</coordinate3> </atom> <atom title="atom" id="8"> <string title="name">N</string> <coordinate3 builtin="xyz3">11.1060 -15.3590 15.4740</coordinate3> </atom> </list> <list title="connections"> <list title="connect" id="1">2 4</list> <list title="connect" id="2">3</list> <list title="connect" id="4">5</list> <list title="connect" id="5">6</list> <list title="connect" id="6">7</list> <list title="connect" id="7">8</list> </list> </molecule> </list> </molecule> <?php $expected = ob_get_clean(); ob_start(); echo "Creating and printing an atom\n"; $a = new Science_Chemistry_Atom("N", array(2.3,4.5,-2.1)); echo $a->toString()."\n"; echo "Creating a second atom and calculating distance to first one\n"; $b = new Science_Chemistry_Atom("C", array(1.2,3.4,-1.6)); echo $b->toString()."\n"; echo "\nDistance N to C: ".sprintf("%.4f", $a->distance($b))." Angstroms\n"; echo "\n=====\nReading a molecule:\n"; $m = new Science_Chemistry_Molecule_XYZ(dirname(__FILE__) . "/his.xyz"); echo "\$m is a molecule: ".(int)Science_Chemistry_Molecule::isMolecule($m)."\n"; echo $m->toString(); $n = new Science_Chemistry_Molecule_XYZ(dirname(__FILE__) . "/lys.xyz"); $mols = array($m, $n); $big = new Science_Chemistry_Macromolecule("big one", $mols); echo $big->toString(); echo $big->toCML("biggie", "big", true); $result = ob_get_clean(); $this->assertSame($expected, $result); } }