Skip to content
This repository was archived by the owner on Jun 7, 2023. It is now read-only.

Commit 32f7f0d

Browse files
author
Brad Miller
committed
Test more features of skulpt in activecodes
1 parent 2481572 commit 32f7f0d

3 files changed

Lines changed: 108 additions & 0 deletions

File tree

63 KB
Loading
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
:orphan:
2+
3+
Test Some ActiveCode Features in Skulpt
4+
=======================================
5+
6+
.. activecode:: ac9_13_1
7+
8+
fileconnection = open("olympics.txt", 'r')
9+
lines = fileconnection.readlines()
10+
header = lines[0]
11+
field_names = header.strip().split(',')
12+
print(field_names)
13+
for row in lines[1:]:
14+
vals = row.strip().split(',')
15+
if vals[5] != "NA":
16+
print("{}: {}; {}".format(
17+
vals[0],
18+
vals[4],
19+
vals[5]))
20+
21+
22+
.. datafile:: olympics.txt
23+
24+
Name,Sex,Age,Team,Event,Medal
25+
A Dijiang,M,24,China,Basketball,NA
26+
A Lamusi,M,23,China,Judo,NA
27+
Gunnar Nielsen Aaby,M,24,Denmark,Football,NA
28+
Edgar Lindenau Aabye,M,34,Denmark/Sweden,Tug-Of-War,Gold
29+
30+
31+
32+
.. activecode:: alt_kiva_bar1
33+
:nocodelens:
34+
35+
import altair
36+
37+
data = altair.Data(customer=['Alice', 'Bob', 'Claire'], cakes=[5,9,7], flavor=['chocolate', 'vanilla', 'strawberry'])
38+
chart = altair.Chart(data)
39+
mark = chart.mark_bar()
40+
enc = mark.encode(x='customer:N',y='cakes',color='flavor:N')
41+
enc.display()
42+
print("mark =", enc.json['mark'])
43+
print(enc.json['encoding']['x'])
44+
45+
46+
.. raw:: html
47+
48+
<img src="./_static/LutherBellPic.jpg" id="luther.jpg" alt="image of Luther College bell picture">
49+
50+
51+
52+
.. activecode:: ac14_7_2
53+
:nocodelens:
54+
55+
import image
56+
img = image.Image("luther.jpg")
57+
win = image.ImageWin(img.getWidth(), img.getHeight())
58+
59+
print(img.getWidth())
60+
print(img.getHeight())
61+
62+
p = img.getPixel(45, 55)
63+
print(p.getRed(), p.getGreen(), p.getBlue())
64+
img.draw(win)
65+
66+

runestone/activecode/test/test_activecode.py

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,3 +113,45 @@ def test_sql_activecode(self):
113113
trlist = res.find_elements_by_tag_name('tr')
114114
self.assertEqual(6, len(trlist))
115115
self.assertTrue("hello" in trlist[1].text)
116+
117+
118+
def test_readfiles(self):
119+
self.driver.get(self.host + "/skulptfeatures.html")
120+
t2 = self.driver.find_element_by_id("ac9_13_1")
121+
self.assertIsNotNone(t2)
122+
rb = t2.find_element_by_class_name("run-button")
123+
self.assertIsNotNone(rb)
124+
rb.click()
125+
out = t2.find_element_by_id("ac9_13_1_stdout")
126+
self.assertIsNotNone(out)
127+
self.assertTrue('Lindenau' in out.text)
128+
129+
130+
def test_altair(self):
131+
self.driver.get(self.host + "/skulptfeatures.html")
132+
t2 = self.driver.find_element_by_id("alt_kiva_bar1")
133+
self.assertIsNotNone(t2)
134+
rb = t2.find_element_by_class_name("run-button")
135+
self.assertIsNotNone(rb)
136+
rb.click()
137+
out = t2.find_element_by_id("alt_kiva_bar1_stdout")
138+
self.assertIsNotNone(out)
139+
self.assertTrue("mark = bar" in out.text)
140+
self.assertTrue("{'type': 'nominal', 'field': 'customer'}" in out.text)
141+
can = t2.find_element_by_tag_name("canvas")
142+
self.assertIsNotNone(can)
143+
144+
def test_image(self):
145+
self.driver.get(self.host + "/skulptfeatures.html")
146+
t2 = self.driver.find_element_by_id("ac14_7_2")
147+
self.assertIsNotNone(t2)
148+
rb = t2.find_element_by_class_name("run-button")
149+
self.assertIsNotNone(rb)
150+
rb.click()
151+
out = t2.find_element_by_id("ac14_7_2_stdout")
152+
self.assertIsNotNone(out)
153+
self.assertTrue("400" in out.text)
154+
self.assertTrue("244" in out.text)
155+
self.assertTrue("165 161 158" in out.text)
156+
can = t2.find_element_by_tag_name("canvas")
157+
self.assertIsNotNone(can)

0 commit comments

Comments
 (0)