File: test-nist-compounds.rb

package info (click to toggle)
xraylib 4.0.0%2Bdfsg1-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 46,936 kB
  • sloc: ansic: 16,103; f90: 8,746; java: 6,766; python: 1,497; cpp: 1,305; pascal: 1,139; makefile: 809; ruby: 622; php: 594; perl: 573; cs: 193; sh: 125
file content (53 lines) | stat: -rw-r--r-- 1,637 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
require "xraylib"
require "test/unit"

class TestNISTCompounds < Test::Unit::TestCase
	def test_good
		list = Xraylib.GetCompoundDataNISTList()
		assert_equal(list.length, 180)
		list.each_with_index do |v, i|
			cdn = Xraylib.GetCompoundDataNISTByIndex(i)
			assert_equal(cdn['name'], v)
			cdn = Xraylib.GetCompoundDataNISTByName(v)
			assert_equal(cdn['name'], v)
		end
		cdn = Xraylib.GetCompoundDataNISTByIndex(5)
		assert_equal(cdn['nElements'], 4)
		assert_in_delta(cdn['density'], 0.001205, 1E-6)
		assert_equal(cdn['Elements'], [6, 7, 8, 18])
		[0.000124, 0.755267, 0.231781, 0.012827].each_with_index do |v, i|
			assert_in_delta(cdn['massFractions'][i], v, 1E-6)
		end
		cdn = Xraylib.GetCompoundDataNISTByName('Air, Dry (near sea level)')
		assert_equal(cdn['nElements'], 4)
		assert_in_delta(cdn['density'], 0.001205, 1E-6)
		assert_equal(cdn['Elements'], [6, 7, 8, 18])
		[0.000124, 0.755267, 0.231781, 0.012827].each_with_index do |v, i|
			assert_in_delta(cdn['massFractions'][i], v, 1E-6)
		end
	end

	def test_bad
        	assert_raise(ArgumentError) {
			Xraylib.GetCompoundDataNISTByName("jwjfpfj")
		}
        	assert_raise(TypeError) {
			Xraylib.GetCompoundDataNISTByName(0)
		}
        	assert_raise(ArgumentError) {
			Xraylib.GetCompoundDataNISTByName(nil)
		}
        	assert_raise(ArgumentError) {
			Xraylib.GetCompoundDataNISTByIndex(-1)
		}
        	assert_raise(ArgumentError) {
			Xraylib.GetCompoundDataNISTByIndex(180)
		}
        	assert_raise(TypeError) {
			Xraylib.GetCompoundDataNISTByIndex(nil)
		}
        	assert_raise(TypeError) {
			Xraylib.GetCompoundDataNISTByIndex("jpwejfp")
		}
	end
end