• R/O
  • SSH

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Castle: The best Real-Time/Embedded/HighTech language EVER. Attempt 2


Commit MetaInfo

Revisión59fa4cf9641095cbb58c4a0f8577b53976ca2a68 (tree)
Tiempo2023-10-03 23:42:37
AutorAlbert Mietus < albert AT mietus DOT nl >
CommiterAlbert Mietus < albert AT mietus DOT nl >

Log Message

Added SimpleSieve to protocol-rendering

Cambiar Resumen

Diferencia incremental

diff -r ee4c0d91abb0 -r 59fa4cf96410 TestDoubles/AIGR/protocols/Sieve.py
--- a/TestDoubles/AIGR/protocols/Sieve.py Tue Oct 03 16:37:04 2023 +0200
+++ b/TestDoubles/AIGR/protocols/Sieve.py Tue Oct 03 16:42:37 2023 +0200
@@ -6,15 +6,18 @@
66 import pytest
77
88 StartSieve = EventProtocol('StartSieve',
9- events=[
9+ events=[
1010 Event(name='runTo', return_type=None, typedParameters=(TypedParameter(name='max', type=int),)),
1111 Event(name='newMax', return_type=None, typedParameters=(TypedParameter(name='max', type=int),))])
1212
13-
1413 SlowStart = EventProtocol('SlowStart',
1514 typedParameters=(TypedParameter(name='queue_max', type=int),),
1615 events=[
17- Event(name='setMax', return_type=None, typedParameters=(TypedParameter(name='queue_max', type=int),))],
18- )
16+ Event(name='setMax', return_type=None, typedParameters=(TypedParameter(name='queue_max', type=int),))])
17+
18+SimpleSieve = EventProtocol('SimpleSieve',
19+ based_on=SlowStart, # parm=1
20+ events=[
21+ Event(name='input', return_type=None, typedParameters=(TypedParameter(name='try', type=int),))])
1922
2023
diff -r ee4c0d91abb0 -r 59fa4cf96410 TestDoubles/reference/protocols/SimpleSieve.rpy
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/TestDoubles/reference/protocols/SimpleSieve.rpy Tue Oct 03 16:42:37 2023 +0200
@@ -0,0 +1,28 @@
1+# -*- python -*-
2+# Generated (R)Python file
3+# (C) Albert Mietus, 2023. Part of Castle/CCastle project
4+
5+####
6+from CC import buildin
7+from CC import base
8+
9+#Put the Castle/generated imports here
10+
11+
12+
13+##
14+## EventIndexes (All 1 events of SimpleSieve)
15+##
16+
17+CC_P_SimpleSieve_input = 1
18+
19+
20+cc_P_SimpleSieve = buildin.CC_B_Protocol(name="SimpleSieve",
21+ kind=buildin.ProtocolKind.Event,
22+ inherit_from=cc_P_SlowStart,
23+ events=[])
24+
25+cc_P_SimpleSieve.events.append(buildin.CC_B_P_EventID(name="input",
26+ seqNo=CC_P_SimpleSieve_input,
27+ part_of=cc_P_SimpleSieve))
28+
diff -r ee4c0d91abb0 -r 59fa4cf96410 pytst/writers/RPy/__init__.py
--- a/pytst/writers/RPy/__init__.py Tue Oct 03 16:37:04 2023 +0200
+++ b/pytst/writers/RPy/__init__.py Tue Oct 03 16:42:37 2023 +0200
@@ -42,7 +42,7 @@
4242 class TstDoubles():
4343 _top = Path('TestDoubles')
4444 _ref = Path('reference')
45- #_ref = Path('_generated') #Not used anymore
45+ _gen = Path('_generated')
4646
4747 def __init__(self, base_name):
4848 self.base_name = Path(base_name)
@@ -51,15 +51,27 @@
5151 def ref_file(self, ext='.rpy'):
5252 return self._top / self._ref / self.base_name.with_suffix(ext)
5353
54- #@property
55- #def gen_file(self, ext='.rpy'):
56- # return self._top / self._gen / self.base_name.with_suffix(ext)
54+ @property
55+ def gen_file(self, ext='.rpy'):
56+ return self._top / self._gen / self.base_name.with_suffix(ext)
5757
5858
5959 @pytest.fixture
6060 def generatedProtocol_verifier(T_Protocol):
61- def matcher(aigr_mock, td):
61+ def matcher(aigr_mock, td, save_file=False):
6262 out = T_Protocol.render(protocols=(aigr_mock,))
63+ logger.debug("---------- out: (%s)----------\n%s", aigr_mock, out)
64+ if save_file:
65+ with open(td.gen_file, 'w') as f:
66+ f.write(out)
67+ logger.info("Saved rendered protocol in: %s", td.gen_file)
6368 ref = open(td.ref_file).read()
64- assert out == ref
69+ logger.debug("---------- ref: ----------\n%s\n==========================", out)
70+
71+ #assert line by line: gives better feedback when they do not match
72+ for n, (o,r) in enumerate(zip(out.splitlines(keepends=True), ref.splitlines(keepends=True), strict=True)):
73+ assert o == r, "line %s does not match: >>%s<< != <<%s>>" % (n, o.strip('\n'), r.strip('\n'))
74+ assert out == ref #Should be needed
6575 return matcher
76+
77+
diff -r ee4c0d91abb0 -r 59fa4cf96410 pytst/writers/RPy/test_99_SieveMoats.py
--- a/pytst/writers/RPy/test_99_SieveMoats.py Tue Oct 03 16:37:04 2023 +0200
+++ b/pytst/writers/RPy/test_99_SieveMoats.py Tue Oct 03 16:42:37 2023 +0200
@@ -13,9 +13,6 @@
1313 def test_02_SlowStart(generatedProtocol_verifier):
1414 generatedProtocol_verifier(aigr_mock=Sieve.SlowStart, td=TstDoubles('protocols/SlowStart'))
1515
16-
16+def test_03_SimpleSieve(generatedProtocol_verifier):
17+ generatedProtocol_verifier(aigr_mock=Sieve.SimpleSieve, td=TstDoubles('protocols/SimpleSieve'), save_file=True)
1718
18-@pytest.mark.skip("After SlowStart")
19-def test_03_SimpleSieve(generatedProtocol_verifier):
20- generatedProtocol_verifier(aigr_mock=Sieve.SimpleSieve, td=TstDoubles('protocols/SimpleSieve'))
21-